WPF新手之模板重用

控件中重用模板就不谈了,基本的。如果是多个HierarchicalDataTemplate要用同一个DataTemplate,只要用ItemTemplate即可:

<DataTemplate x:Key="IPConfigTemplate" DataType="{x:Type local:IPConfig}"> <TextBlock Text="{Binding Path=IPUseDHCP, Converter={StaticResource BoolConverter}}" /> </DataTemplate> <HierarchicalDataTemplate x:Key="NICProfileTemplate" DataType="{x:Type local:NICProfile}" ItemsSource="{Binding Path=IPC}" ItemTemplate="{StaticResource IPConfigTemplate}"> <TextBlock Text="{Binding Path=Name}" /> </HierarchicalDataTemplate>

也可以在多个控件之间共享HierarchicalDataTemplate:

<TreeView x:Name="Tree1" ItemsSource="{Binding }" ItemTemplate="{StaticResource NICProfileTemplate}"/> <TreeView x:Name="Tree2" ItemsSource="{Binding }" ItemTemplate="{StaticResource NICProfileTemplate}"/>

若一个对象的其中一个成员为ObservableCollection<string> B,则针对这个成员也必须有一个DataTemplate,才能满足嵌套HierarchicalDataTemplate的要求,此时可以:

<DataTemplate x:Key="StringTemplate"> <TextBlock Text="{Binding}"/> </DataTemplate> <HierarchicalDataTemplate DataType="{x:Type src:Data}" ItemsSource="{Binding Path=B}" ItemTemplate="{StaticResource StringTemplate}"> <TextBlock Text="{Binding Path=Name}"/> </HierarchicalDataTemplate>

你可能感兴趣的:(tree,Path,WPF,binding,DataTemplate)