Ich habe eine TreeView mit Checkbox. Ich habe ein paar Beispiele online gesehen, die zeigen, wie Eltern/Kind-Checkboxen mit INotifyPropertyChanged verbunden werden. Was ich jedoch versuche zu erreichen, ist mehr als das.TreeView mit CheckBox manipulieren
Angenommen, ich habe 2 verschiedene Objekt
Haupt Objekt
public class MainObject
{
public string Name;
public List<SubObject> SubObjects;
public bool? IsChecked;
//other parameters
}
Sub-Objekt
public class SubObject
{
string Label;
public bool? IsChecked;
//other parameters
}
TreeView Anzeige
- Main_Object_1(Name)
- Sub_Object_1(Label)
- Sub_Object_2(Label)
- Main_Object_2(Name)
- Sub_Object_3(Label)
Ich habe 3 Ziele:
1) Eltern-/Kind-Checkbox Vereinigung
Hauptobjekt und Unter Objekt den richtigen Status reflektieren je nachdem, welche Option geklickt wird.
Wenn das Kontrollkästchen Hauptobjekt aktiviert ist, werden alle Unterobjekte geprüft.
Wenn eine der Unter Objekt überprüft wird, wird Hauptobjekt null sein (voll mit etwas Farbe gefüllt)
2) Verschiedene Satz Assoziation
Zu jeder Zeit einen Satz (Main_Object_1 oder Main_Object_2) kann überprüft werden.
Angenommen, nur "Main_Object_2" und "Sub_Object_3" ist aktiviert. Wenn "Main_Object_1" oder "Sub_Object_1" oder "Sub_Object_2" aktiviert ist, ist "Main_Object_2" und "Sub_Object_3" deaktiviert.
3) Durchführen von anderen Aufgaben das Kontrollkästchen Anzeige
neben Aktualisierung I benötigt andere Aufgabe auszuführen abhängig davon, welcher Knoten aktiviert/deaktiviert.
Irgendein Zeiger darauf, wie man das erledigt? Danke.
Wenn Klassendatenattribute als Felder deklariert sind ('public bool? IsChecked;'), können Sie diese nicht über Binding anzeigen. Wenn es sich jedoch um Eigenschaften handelt ('public bool? IsChecked {get; set;}'), kann man * any * logic in setter schreiben und Anforderungen 1.2.3 implementieren. mit etwas Aufwand investiert – ASh