我试图了解如何最好地扩展ListBox
控制。作为一种学习体验,我想构建一个ListBox
whosListBoxItem
显示 aCheckBox
而不仅仅是文本。我使用 以基本方式工作ListBox.ItemTemplate
,明确设置我想要数据绑定到的属性的名称。一个例子值一千字,所以...
我有一个用于数据绑定的自定义对象:
public class MyDataItem {
public bool Checked { get; set; }
public string DisplayName { get; set; }
public MyDataItem(bool isChecked, string displayName) {
Checked = isChecked;
DisplayName = displayName;
}
}
(我建立了一个列表并将其设置ListBox.ItemsSource
为该列表。)我的 XAML 看起来像这样:
<ListBox Name="listBox1">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=Checked}" Content="{Binding Path=DisplayName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这行得通。但我想让这个模板可重用,即我想绑定到具有除“Checked”和“DisplayName”之外的属性的其他对象。如何修改我的模板,使其成为资源,在多个ListBox
实例上重用它,并为每个实例绑定IsChecked
并绑定Content
到任意属性名称?