我的 WPF 列表框包含两种类型的对象:产品和品牌。
我希望我的产品可供选择。我希望我的品牌不可选择。
这两种类型都有自己的 DataTemplate。
默认情况下,可以选择任何内容:
<ListBox ... >
<ListBox.Resources>
<DataTemplate DataType="{x:Type local:Product}">
...
</DataTemplate>
<DataTemplate DataType="{x:Type local:Brand}">
...
</DataTemplate>
</ListBox.Resources>
</ListBox>
我可以使用 Setter 设置 Focusable,但随后可能无法选择任何内容:
<ListBox ... >
<ListBox.Resources>
...
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Focusable" Value="False" />
</Style>
</ListBox.Resources>
</ListBox>
我无法将 Setter 放入 DataTemplate 中。
我无法将数据类型放入样式中。
如何仅设置品牌类型的 ListBoxItems 的样式?
最佳答案
借助 StyleSelector 类,您可以根据 ItemContainerStyle 的数据类型附加样式。这里有一个非常好的例子:http://www.telerik.com/help/wpf/common-data-binding-style-selectors.html
关于wpf - 如何为特定数据类型的 ListBoxItems 应用样式 setter ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7542139/