我有一个带复选框的TreeView。我在网上看到了一些示例,展示了如何使用INotifyPropertyChanged将父/子复选框绑定在一起。 但是,我想要实现的不仅仅是那个。
假设我有2个不同的对象
主要对象
public class MainObject
{
public string Name;
public List<SubObject> SubObjects;
public bool? IsChecked;
//other parameters
}
子对象
public class SubObject
{
string Label;
public bool? IsChecked;
//other parameters
}
TreeView显示
- Main_Object_1(Name)
- Sub_Object_1(Label)
- Sub_Object_2(Label)
- Main_Object_2(Name)
- Sub_Object_3(Label)
我有3个目标:
1)父/子复选框关联
主要对象和子对象将根据单击的复选框反映正确的状态。
如果选中Main object复选框,则将检查所有子对象。
如果选中了其中一个子对象,则主对象将为null(完全填充某种颜色)
2)不同的设置关联
任何时候都可以检查一组(Main_Object_1或Main_Object_2)。
假设仅检查“Main_Object_2”和“Sub_Object_3”。 检查“Main_Object_1”或“Sub_Object_1”或“Sub_Object_2”时,取消选中“Main_Object_2”和“Sub_Object_3”。
3)在更新复选框显示旁边执行其他任务
我需要根据选中/取消选中的节点执行其他任务。
有关如何完成此操作的任何指针? 感谢。
答案 0 :(得分:0)
我设法通过添加IsChecked属性和父属性以及Set属性来获得我想要的输出。之后我添加了一些逻辑来操纵复选框状态。对于目标3,我只需添加一个已检查的事件处理程序来执行我需要的任务。