分类 WPF 下的文章

在WPF中,ControlTemplateDataTemplate是两种用于定义UI的模板。

  • DataTemplate:用于定义数据对象如何显示。比如在ListBoxComboBoxItemsControl等控件中,程序员会直接绑定数据——这里我们可以使用DataTemplate来定义每一项的数据如何显示。注意,DataTemplate目标是数据对象,它定义了数据如何在UI中呈现,比如一个字符串、一个自定义对象,或者一个集合的每一项。
  • ControlTemplate:用于定义控件的外观。例如,你可以为一个Button控件定义一个ControlTemplate来改变按钮的外观。注意,ControlTemplate的目标是控件本身,比如ButtonTextBox等。它定义了控件的可视化树结构。

数据模板

数据模板提供了一种至关重要的能力:即可以自由灵活地展示数据外观。在不使用数据模板的情况下,WPF默认展示对象时总是固定调用对象的.ToString()方法,我们当然还可以使用绑定路径、自定义控件等方法。但是问题是,这些方案都不够灵活。

数据模板(DataTemplate) 提供的解决方案是,为控件关连的对象自动应用相应的数据模板。

阅读剩余部分