对于WPF,使用setter来设置itemtemplate属性是否过分?

时间:2011-06-30 20:25:44

标签: wpf xaml datatemplate setter

当我搜索互联网以了解如何为列表框设置itemtemplate时,我找到了一个示例,他们在window.resources中使用了样式设置器来执行此操作。所以,我有几个选项,我可以在window.resources中创建一个datatemplate,或者创建一个Style Setter。设置样式而不是datatemplate是否有点过分?我应该使用哪种方法?

谢谢。

3 个答案:

答案 0 :(得分:1)

你不能说一个或另一个更好,这取决于。 Implicit DataTemplates是一种很好的全局方式(即使只是部分可视树),Type应该是什么样子。使用ItemTemplate时,您可以指示它在给定ItemsControl中的外观(即ListBox,ComboBox等)。

您甚至可以使用它们的组合,这样您就可以拥有“默认”外观,但可以根据控件或控件类型进行自定义。

即使使用ItemTemplate,您也可以全局设置它,例如所有ListBox,或仅设置一个ListBox实例。再说一次,有时一种方法更好,有时则不然。这取决于你想要做什么。

答案 1 :(得分:0)

通常使用样式将相同的值应用于相同类型的不同实例。如果不是这种情况,则根本不需要创建样式。

答案 2 :(得分:0)

我更喜欢为项目类型制作<DataTemplate>,然后让WPF弄明白。

<DataTemplate DataType="{x:Type local:Task}">
  <StackPanel>
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>
  </StackPanel>
</DataTemplate>

<List ItemSource="{Binding MyListOfTaskItems"/>