Laden...

Forenbeiträge von fritziiiii Ingesamt 7 Beiträge

10.01.2018 - 23:12 Uhr

Hi FZelle,

danke für deine Antwort. Werde vermutlich jetzt erstmal eine gewisse Zeit brauchen, um das Aufzuarbeiten, was du mir präsentierst.

Aber zwei Sachen würd ich noch gerne loswerden:
Thema INotifyPropertyChanged: Die verwendete Version hab ich aus meinen C#-Buch (= Identisch mit dem Rheinwerk Openbook Kapitel 21.2, einfache Datenbindung) Das kann doch nicht sooo falsch sein, oder?

Thema 2:
Bitte ettwas Geduld mit den "Amateuren". Ich bin durchaus bemühlt, mein Wissen in C# zu vertiefen, glaube auch, mit meinem Projekt durchaus einiges gelernt zu haben, aber man stößt als Laie eben immer wieder an Probleme wo man selbst nicht weiterkommt und man Hilfe braucht, weil man gar nicht weis in welche Richtung man suchen muß

10.01.2018 - 20:10 Uhr

Hallo FZelle,

keine Frage, ich bin bestimmt nicht die hellste Kerze auf der Torte, was Programmierung angeht.
Zu meiner Verteidigung muß ich jedoch anfügen, daß ich aus meinem bestehenden Projekt Code-Bruckstücke herausgenommen habe, und daraus ein Grundgerüst für meine Fragestellung hier aufgebaut habe. Das INotifyPropertyChanged hab ich einfach nur vergessen herauszunehmen. Mein Hauptaugenmerk war darauf gerichtet, einen kurzen, auf das Kernproblem zielenden Code zu liefern.

Da du dich ja scheinbar mit Events auskennst, würde es mich freuen, wenn du mein Code-Beispiel so abänderst, daß es mit Events funktioniert. P!lle scheint das ja durchaus auch zu interessieren.

Gruß
Fritziiiii

10.01.2018 - 10:53 Uhr

Danke!

Das war die Lösung!

10.01.2018 - 09:41 Uhr

Schonmal danke für eure Antworten.
Habe nun meinen Code angepaßt, aber der Groschen ist noch nicht ganz gefallen

die Basisklasse habe ich um die Methode "ElementHinzufuegen ergänzt. In dieser Methode gebe ich eine Referenz auf die Variable "Status"

public void ElementHinzufuegen(ref int status)
        {
            ListeElemente.Add(new EinzelnesElemente(ref status));
        }

In der Klasse "EinzelnesElement" habe ich einen Konstruktor eingefügt, der die Referenz entgegennimmt

 public EinzelnesElemente(ref int status)
        {
            Status = status; 
        }

Aber jetzt komm ich nicht weiter. Was muß ich machen, damit ich in der Klasse mit der Referenz weiterarbeiten kann und NICHT als neue Variable ablege?

namespace WpfApp1
{
    public class EinzelnesElemente : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (PropertyChanged != null) PropertyChanged(this, e);
        }

        int Status;

        // Konstruktor
        public EinzelnesElemente(ref int status)
        {
            Status = status;  //Baustelle
        }
        

        public string Name { get; set; }

        public string StatusAbfragen()
        {
            return Convert.ToString(Status);
        }



    }


    public class Basisklasse : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (PropertyChanged != null) PropertyChanged(this, e);
        }

        public ObservableCollection<EinzelnesElemente> ListeElemente = new ObservableCollection<EinzelnesElemente>();

        public int Status = 5;
        

        public void ElementHinzufuegen(ref int status)
        {
            ListeElemente.Add(new EinzelnesElemente(ref status));
        }

    }

    public partial class MainWindow : Window
    {
        Basisklasse basis = new Basisklasse();
        public MainWindow()
        {
            basis.ElementHinzufuegen(ref basis.Status);

            InitializeComponent();
           
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            basis.Status = 7;
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
          
            Label_Ausgabe.Content = basis.ListeElemente[0].StatusAbfragen();
        }
    }
}
09.01.2018 - 22:53 Uhr

Hi,
bitte verzeiht meinen blöden Betreff, aber ich weiß nicht wie ich mein Problem besser bezeichnen könnte:

Ausgangslage:

  • ich habe eine Klasse "EinzelnesElement"

  • ich habe eine Klasse "Basisklasse"
    In dieser Basisklasse erzeuge ich eine ObservableCollection<EinzelnesElemente> ListeElemente
    In der Basisklasse ist zudem die Eigenschaft "Status" deklariert.

Nun zum Problem:
Ich würde in der Klasse "EinzelnesElement" zu gern den Wert der Eigenschaft "Status" abfragen!
Wie krieg ich das hin?


namespace WpfApp1
{
    public class EinzelnesElemente : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (PropertyChanged != null) PropertyChanged(this, e);
        }

        public string Name { get; set; }

        public void StatusAbfragen()
        {
            // hier würd ich gern den Status der Basisklasse abfragen
        }
    }


    public class Basisklasse : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (PropertyChanged != null) PropertyChanged(this, e);
        }

        public ObservableCollection<EinzelnesElemente> ListeElemente = new ObservableCollection<EinzelnesElemente>();

        public int Status = 5;

    }

        /// <summary>
        /// Interaktionslogik für MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
    {
        public MainWindow()
        {

            Basisklasse basis = new Basisklasse();
            basis.ListeElemente.Add(new EinzelnesElemente());
            InitializeComponent();
        }
    }
}


28.12.2017 - 10:34 Uhr

Danke für deine Hilfe.

Hätte nicht gedacht, daß so ein kleines Problem sooo viel Arbeit verursacht! 😃 😃

27.12.2017 - 17:23 Uhr

Hallo,

ich habe folgendes Problem mit einer ListView:
In meiner ListView sind mehrere Einträge. Wenn ich nun mit der Maus über einen Eintrag fahre, wird dieser mit einem leichten Blauton hinterlegt.
Ich hätte gerne, dass beim Überfahren mit der Maus über einzelne Einträge gar nix passiert, aber das bekomm ich nicht auf die Reihe.

Denke ich bin mit den Style aufm richtigen Weg, aber das richtige Property ist wohl noch nicht dabei....

 <Style TargetType="{x:Type ListViewItem}">
            
            <Setter Property="Background" Value="White"/>
            <Style.Triggers>
                <Trigger Property="IsMouseOver"  Value="true">
                    <Setter Property="Background" Value="Transparent"/> // hat keine Auswirkung
                    <Setter Property="Cursor" Value="ArrowCD"/>
                    <Setter Property="BorderThickness" Value="0"/>  // der Rahmen ist schonmal weg
                    <Setter Property="Opacity" Value="1"/>
                   
                    

                </Trigger>
            </Style.Triggers>
        </Style>