我的层次结构看起来像这样 - 工厂>机器>组件>控制“>”可以读 as“包含一个列表”。
这非常适合使用HierarchicalDataTemplates的TreeView。现在说我想在树中添加复选框,以便用户可以创建需要控制的树的“视图”。目前我的模板是绑定到实际机器/组件/控件对象的数据,如此......
<HierarchicalDataTemplate DataType="{x:Type src:Component}" ItemsSource = "{Binding Path=Controls}">
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="False" />
<TextBlock Text="{Binding Path=Name}"/>
</StackPanel>
</HierarchicalDataTemplate>
我不想更改我的机器/组件/控件类的代码,以便能够处理“视图”创建。换句话说,我想保持“数据模型”代码和UI代码分开。例如,要处理复选框,我需要将其绑定到Control的IsSelected属性。我发现自己在这些类中添加了一堆属性和通知代码。 我尝试的另一种方法是为每个机器/组件/控件类创建一个“视图”类。通过这种方法,我最终在“视图”类中创建了数据副本,并且必须将其与实际数据同步。这是一个很好的方法吗?
答案 0 :(得分:2)