我试图了解如何最好地扩展ListBox控制。作为一种学习体验,我想构建一个ListBoxwhosListBoxItem显示 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到任意属性名称?