我想将ListViewItem的背景色设置为该项目的DataTemplate中使用的颜色。
这是DataTemplates之一,请注意已设置BackGround颜色:
<DataTemplate DataType="{x:Type viewmodel:DataPointViewModel}">
<UniformGrid Columns="2" Background="LimeGreen">
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding Description}"/>
</UniformGrid>
</DataTemplate>
这是带有边框的ItemContainerStyle,设置为ListView的ItemContainerStyle:
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Background" Value="Yellow"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding BackGround}">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我想避免ViewModel本身具有Background颜色。到目前为止,我所有的努力都导致了Bindings中的绑定错误,例如:
{Binding BackGround, RelativeSource={RelativeSource AncestorType=UniformGrid}}
在将Binding设置为“ TemplateBinding BackGround”的情况下,它确实成功使用了我在样式本身中设置的颜色,这正是我所期望的。
如何绑定到DataTemplate中的BackGround属性,或者这是无法实现的?