2017-07-20 3 views
-1

Ich habe eine ListBox und ein DataGrid, wobei die ListBox eine Teilmenge der Liste des DataGrids zeigt. Ich habe die zwei Listen erstellt, an die die Steuerelemente separat gebunden sind, jedoch sind die SelectedItem-Elemente beider Steuerelemente im Ansichtsmodell an dieselbe Eigenschaft gebunden. Ich brauche beide Steuerelemente, um das gleiche Element auszuwählen, wenn der Benutzer auf die Elemente eines Steuerelements klickt, es sei denn, der Benutzer klickt auf das DataGrid für ein Element, das nicht Teil der ListBox ist (dann sollte die ListBox nichts ausgewählt haben).Zwei Steuerelemente, die an dieselbe Eigenschaft gebunden sind WPF

Ich denke, da die Listen separat erstellt wurden, sind sie nicht das gleiche Objekt, also gibt es eine Möglichkeit, eine Art Vergleichslogik zu den Steuerelementen zur Auswahl eines Elements, das im Wesentlichen den gleichen Namen (oder Wert oder einige hat) Art von Kriterien)? Wenn das nicht existiert, dann denke ich, dass der beste Weg wäre, die Teilmengenliste von Objekten aus genau denselben Objekten in der Obermenge zu erzeugen.

+1

Beide Listen können Verweise auf dieselben Objekte enthalten. Wenn dies nicht möglich ist, überschreiben Sie die Equals-Methode des Elementtyps. Aber lesen Sie die [Bemerkungen] (https://msdn.microsoft.com/en-us/library/bsc2ak47.aspx). – Clemens

Antwort

0

Ich vermute, da die Listen separat erstellt wurden, sind sie nicht das gleiche Objekt

Sie das gleiche Objekt zu zwei verschiedenen Sammlungen hinzufügen könnten, zum Beispiel:

YourType obj = new YourType(); 
list1.Add(obj); 
list2.Add(obj); 

Dieses sollte dein Problem lösen. Sie könnten auch die Equals Methode von YourType überschreiben, wie in den Kommentaren vorgeschlagen, aber Sie sollten nicht müssen, wenn beide Auflistungen die gleichen Objekte referenzieren, was sie tun sollten, da die zweite eine Teilmenge der ersten ist.

+0

Ich habe am Ende nur die Teilmenge Liste von genau den gleichen Objekten wie die Obermenge-Liste erstellt, obwohl ich immer noch auf ein Problem stoßen, wenn Sie ein Element aus der Teilmenge wählen, die es das Element des Datagrid nicht auswählt. Umgekehrt funktioniert das. Ich habe sogar 'UpdateSourceTrigger = PropertyChanged, Mode = TwoWay', also werde ich versuchen, später zu aktualisieren, wenn ich wieder zu dieser Aufgabe komme und das Problem herausfinden. – m4gik

Verwandte Themen