我正在尝试为每个列表框添加不同的样式。在我的项目中的项目。有人能帮助我吗?
`
foreach (var item in orderList)
{
var itm = new ListBoxItem();
if (item.CustomOrder)
{
itm.Content = item;
itm.Style = customOrderStyle;
listbox.Items.Add(itm);
}
else
{
itm.Content = item;
itm.Style = newOrderStyle;
listbox.Items.Add(itm);
}
}
`
我知道我正在添加列表框项目到列表框,这就是为什么内容不显示。我尝试了一些不同的事情,但仍然不知道如何解决它。
2条答案
按热度按时间jdg4fx2g1#
检查Data Templating Overview链接并转到“将DataTemplate创建为资源”一节(并阅读下一节)。它显示了如何将
DataTemplate
定义为资源以及如何使用DataTemplate.DataType
属性。只是不要为模板指定x:Key
,以便WPF可以根据项目类型自动选择合适的模板。然后,为每个单独的外观项目定义一个数据模型,并停止您正在做的事情:不要显式创建
ListBoxItem
(让WPF通过DataTemplate
来创建)。不要检查CustomOrder
属性,而是引入相关的模型类,例如DefaultOrder
和CustomOrder
。然后将这些类型的项添加到绑定到ListBox
的公共源集合中:订单.cs
默认订单.cs
自定义订单.cs
主窗口.xaml
主窗口.xaml.cs
63lcw9qa2#
一个更典型的WPF实现示例:
第一个