【发布时间】:2011-10-21 05:58:48
【问题描述】:
我有一个 ListBox 需要为每个项目显示一个复选框/文本块组合。然而,这些项目不在集合中,而是在类中作为属性(布尔值/字符串)公开。这意味着我无法在 DataTemplate 中为 Item 设置 Binding 属性,因为每个 Item 都将绑定到不同的属性。
是否可以定义一个不绑定任何属性的DataTemplate,然后在使用DataTemplate时定义Binding。
在伪代码中:
<DataTemplate x:Key="ReusableDataTemplate">
<StackPanel Orientation="Horizontal">
<CheckBox />
<TextBlock />
</StackPanel>
</DataTemplate>
然后将其用作:
<ListBox>
<ListBoxItem DataTemplate="ReusableDataTemplate" CheckBoxBinding="{Path=Enable1}" TextBlockBinding="{Path=Enable1Text}"/>
<ListBoxItem DataTemplate="ReusableDataTemplate" CheckBoxBinding="{Path=Enable2}"
TextBlockBinding="{Path=Enable2Text}"/>
<ListBoxItem DataTemplate="ReusableDataTemplate" CheckBoxBinding="{Path=Enable3}" TextBlockBinding="{Path=Enable3Text}"/>
</ListBox>
【问题讨论】:
标签: c# wpf data-binding listbox datatemplate