Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von nekron
Thema: Popup Style
Am im Forum: GUI: WPF und XAML

Hi ...

wie kann ich einen Style für das Popup realisieren, welches zum Button selbst passt ? Für mich absolutes Neuland und absolut unverständlich Bisher immer Winforms - nun versuche ich ein Projekt von WPF (nur Codebehind) zu modernisieren ..

Und wie komme ich zu einem Command ? Irgendwie funktioniert das bei mir nicht ... bekomme aber auch keinen XAML-Fehler ...


            <Button x:Name="Button_AddStorage" Style="{DynamicResource Button.Default}" Margin="27,10,473,10" Height="32" Width="Auto" ToolTip="{lex:Loc ResourceIdentifierKey=Tooltip_AddStorage}">
                <Path Fill="#FFFFFF" Data="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" />
                <Button.ContextMenu>
                    <ContextMenu x:Name="MainContextMenu" PlacementRectangle="{Binding RelativeSource={RelativeSource Self}}">
                        <MenuItem Header="CSV Datei" Command="{Binding AddCSVFileCommand}"/>
                            <MenuItem Header="Excel Datei" />
                            <MenuItem Header="Excel Formfiller" />
                            <MenuItem Header="Scriptreader" />
                    </ContextMenu>
                </Button.ContextMenu>

                <Button.Triggers>
                    <EventTrigger SourceName="Button_AddStorage" RoutedEvent="Button.Click">
                        <BeginStoryboard>
                            <Storyboard>
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="MainContextMenu" Storyboard.TargetProperty="(ContextMenu.IsOpen)">
                                    <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                        <DiscreteObjectKeyFrame.Value>
                                            <sys:Boolean>True</sys:Boolean>
                                        </DiscreteObjectKeyFrame.Value>
                                    </DiscreteObjectKeyFrame>
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Button.Triggers>
            </Button>

Aber vielleicht kann mich da jemand heranführen ? Oder habe ich eine andere Möglichkeit hier eine Art popup einzublenden und ganz normale buttons zu nutzen ?

Danke & Gruss,
nekron

Thema: Propertybinding eines kompletten Objekts
Am im Forum: Grundlagen von C#

Danke dir - du hast mir sehr weitergeholfen und mich dem Weg ein ganzes Stück weiter gebracht ...

Vor allem bin ich auf den Multidatatrigger gestossen, mit welchem sich eine entsprechende Logik ohne probleme erstellen lies.

Viele Grüße,
michael

Thema: Propertybinding eines kompletten Objekts
Am im Forum: Grundlagen von C#

Stimmt genau - ich komme rein aus der Richtung Winforms ... wobei ich hier schon versuche Logik und View zu trennen.

da im Usercontrol jedoch nur Werte für den Benutzer zur Eingabe aufbereitet werden - dachte ich wieso soll ich das nicht im Codebehind machen ? Funktioniert ja prinzipiell auch fast - aber auch nur fast.

Im Codebehind entscheide ich quasi -
wenn Tag.isABC -> txtBox1.Visibility = Hidden, textEdit1.Visibility ...
wenn Tag.isDEF -> txtBox1.Visibility = Visible

deswegen möchte ich möglichst mitgekommen wenn sich irgendein Property in _editTag ändert. Somit kann ich das dann für den Benutzer aufbereiten.

Thema: Propertybinding eines kompletten Objekts
Am im Forum: Grundlagen von C#

Das Self habe ich nur zum probieren eingefügt, ob es eventuell so funktioniert Dachte mit einfach ,wenn ich das NotifyPropertyChanged("Self") loslasse kommt das ChangeEvent im Usercontrol an. Hat leider nicht funktioniert.

Variablen sind natürlich _[...] als private deklariert, habe ich wohl beim raustippern vergessen...

Ich baue ein Usercontrol, welches Verschiedene Objekte aus dieser Klasse (_editTag ist ein gefülltes Objekt hiervon) bearbeiten bzw. zum Teil nur darstellen soll. Meine Idee war also ich bringe das nicht einzeln zum Usercontrol (also mehrer Bindings) sondern als Sammelobjekt.

Ich kann im Codebehind darauf auch zugreifen, dann passt das, aber ich bekomme keine Changenotifications.
Die ganze Tag Klasse ist eine etwas angestaubte Library, wurde wahrscheinlich historisch so programmiert. Aber werde das Stückchenweise umstellen, macht ja sinn.

Danke Dir, Sorry, C# ist nicht meine Muttersprache

Thema: Propertybinding eines kompletten Objekts
Am im Forum: Grundlagen von C#

Mal stark abgekürzt zur Erläuterung...


    public class Tag : INotifyPropertyChanged
    {
        public Tag Self
        {
            get { return this; }
        }
        public Area DataSource
        {
            get
            {
                return this.DataSource;
            }
            set
            {
                this.DataSource = value;
                NotifyPropertyChanged("Self");  NotifyPropertyChanged("DataSource");
            }
        }
        public string ItemAsString
        {
            get
            {
                return this.ItemAsString;
            }
            set
            {
                this.ItemAsString = value;
                NotifyPropertyChanged("Self");  NotifyPropertyChanged("ItemAsString");
            }
        }
[...]
        #region PropertyChanged
        public event PropertyChangedEventHandler PropertyChanged;
        protected void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }
        #endregion

Im Usercontrol:


		public static readonly DependencyProperty AddressProperty = DependencyProperty.Register("Address", typeof(Tag), typeof(TagAdressBox), new FrameworkPropertyMetadata(null, OnAddressChanged)
		{
			BindsTwoWayByDefault = true
		});

		public Tag Address
		{
			get
			{
				return (Tag)GetValue(AddressProperty);
			}
			set
			{
				SetValue(AddressProperty, value);
			}
		}

		public static void OnAddressChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
		{
                [...]
                }


Im View:

                    <userctrl:TagAdressBox x:Name="Edit_Tag" Height="32" HorizontalAlignment="Left" Grid.Column="1" Grid.Row="3" Address="{Binding _editTag.Self, Mode=TwoWay}"/>

hab ich im XAML ein (Usercontrol entsprechen angepasst, das es einen String frisst) funktioniert das Notify

                    <userctrl:TagAdressBox x:Name="Edit_Tag" Height="32" HorizontalAlignment="Left" Grid.Column="1" Grid.Row="3" Address="{Binding _editTag.ItemAsString, Mode=TwoWay}"/>

zu deutsch will ich ein Change-Event haben wenn ItemAsString oder auch Datasource sich ändert.
Vielleicht reichts ja so schon ...

Thema: Propertybinding eines kompletten Objekts
Am im Forum: Grundlagen von C#

Ich habe eine Klasse, diese implementiert INotifyPropertychanged, funktioniert auch prinzipiell (mit einzelnen Variablen).

Nun binde ich ein Objekt dieser Klasse an ein Usercontrol und möchte prinzipiell über alle geänderten Properties in der Klasse informiert werden, bekomme aber nur zur Erstellung ein Notify.



Thema: Propertybinding eines kompletten Objekts
Am im Forum: Grundlagen von C#

Hi ...

kann mir mal einer helfen - ich komm hier nicht weiter ...

ich habe ein Usercontrol, an diesem hängt ein Objekt (einer Klasse) per Bindung - hier kommt ein ChangedEvent beim Erstellen - aber wie kann ich Änderungen der Klassenmember mitbekommen ?
Wenn ich an das Usercontrol ein Member der Klasse hänge dann klappt das, ich habe dann schon versucht ein self zu erstellen, und dann an mit NotifyPropertyChanged("self"); einen Changeevent auszulösen - klappt aber irgendwie auch nicht ...

Sorry - ich weiss nicht so ganz wie ichs umschreiben soll - bin zu doof dazu

Gruss,
nekron

Thema: Bildaufbau bei Forms mit vielen Controls
Am im Forum: GUI: Windows-Forms

moin moin Namensvetter,

es dreht sich dabei um ein StatusDisplay für eine Produktionsanlage, die sehr viele Controls (Darstellung ähnlich einer MultiColor-Led) enthält um die Anlage zu Visualisieren. Klar, könnte ich die jetzt gruppieren (wobei ich denke so viel schneller wird das dann gar nicht gehen oder ? der redraw muss dann ja trotzdem durchgeführt werden).

Ausserdem verliere ich dann ja wieder flexibilitär, wenn jemand mal was an dem Projekt ändern will ...

Ich kann später hier mal ein Bild reinstellen, wie das ganze so ungefähr aussieht.

Bringt es was, alles per Bild zu zeichnen und nur Inhalte farblich zu füllen ?

danke
michael

Thema: Bildaufbau bei Forms mit vielen Controls
Am im Forum: GUI: Windows-Forms

Hi ...

gibt es eine möglichkeit, den Bildschirmaufbau bei Forms mit sehr vielen Controls zu beschleunigen ?

wenn da mal 500 controls auf der Form liegen und man die Form in den Hintergrund schickt und dann wieder nach vorne holt, kann man ja regelrecht zuschauen wie sich das so schön von rechts nach links aufbaut

was für Möglichkeiten gibt es da ? (SuspendLayout/ResumeLayout ist alles schon drin)

danke
michael

Thema: MDIChild, Component und Dispose
Am im Forum: Rund um die Programmierung

Hi All ...

nachdem ich meinem Problem schon ein wenig länger hinterherlaufe und einfach nichts finden kann frag ich mal hier nach

Ich habe ein Component, welches ein Dispose(..) enthält. Dieses Component liegt mit in einem MdiChild Container, welcher geschlossen wird. Die Controls in dem Container durchlaufen alle schön brav ihren Dispose, das Component jedoch nicht, das wird erst beim Beenden durchlaufen.

Kann ich dieses Verhalten ändern, da das Component dann einen ChangeHandler aufruft, der auf Daten des MdiChilds zugreifen will, welche dann ja nicht mehr da sind ...

oder hab ich da irgendwo einen Denkfehler ? selbst mit der Implementation von IDisposable hatte ich keinen Erfolg.

Oder ist dieses Verhalten bei Components normal ?

danke
miochael

Thema: Klassennamen als String hersuchen und Objekte dazu erzeugen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich möchte euch allen Danken, das war genau der richtige Weg

Irgendwie ist man doch ab und zu zu blöd und sieht den Wald vor lauter Bäumen nicht oder ?

Schönen abend
michael

Thema: Klassennamen als String hersuchen und Objekte dazu erzeugen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi ...

gibt es eine Möglichkeit, ein MDI-Child nicht per fMain = new frmMain(); zu erstellen sondern per fTemp = new xxType("frmMain"); ?

bzw. ist es generell Möglich alle verfügbaren (nicht angezeigten, das geht ja) Forms aufzulisten ?

Sorry - irgendwie doof geschrieben, aber finden tu ich auch nichts, wahrscheinlich such ich falsch - die Kommentare dann bitte sparen

danke michael