我有一个应用于列表框项目的 WPF 样式。目前,每个项目都绑定到一个 KeyValuePair。我在 ListBoxItem 内的 TextBlock 中显示 Key:
<TextBlock Name="Label" Text="{Binding Key}" />
我想要做的是使样式通用,以便如果数据不是 KeyValuePair(可能只是一个字符串),我可以将数据正确绑定到 TextBlock。
有没有办法将参数传递给 Style 或 DataTemplate 或使数据绑定通用?
我的风格:
<Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Border" Padding="2" SnapsToDevicePixels="true" CornerRadius="4" BorderThickness="1">
<TextBlock Name="Label" Text="{Binding Key}" />
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True"/>
</MultiTrigger.Conditions>
<Setter TargetName="Border" Property="Background" Value="{StaticResource SelectionGradient}" />
</MultiTrigger>
<ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>