代替使用多个datatrigger与multibinding来设置ListViewItem的背景颜色:
<DataTrigger Value="4" >
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource WaitStatus}">
<Binding Path="Checkin" />
<Binding Path="Checkout" />
<Binding Path="Notseen" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="{StaticResource GreenBrush}" />
</DataTrigger>
我试图使用附加属性来返回ListViewItem背景的画笔颜色。代码看起来像这样:
<Style x:Key="listViewItemStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="v:ListViewItemBehavior.MyValue" Value="{Binding testvalue}"/>
<Setter Property="Background" Value="{Binding Path=(v:ListViewItemBehavior).Background}" />
我的目标是让第一个setter将ListViewItem的DataContext传递到附加的属性v:ListViewItem behavior . myvalue。然后附加的属性计算背景颜色,并将结果放在ListViewItemBehavior.Background.
第二个setter是从listviewitembehavior中提取背景色,并从它中设置ListViewItem的背景色。
附加的属性,ListViewItemBehaviour正确地设置背景颜色,但我无法得到如何将这个颜色返回到第二个setter的XAML。{绑定…}的值总是在ListViewItem的DataContext中查找v:ListViewItemBehavior——我不能让它在ListViewItemBehavior中查找背景颜色。
如何使用不同的数据上下文Setter值属性然后从ListViewItem继承的数据上下文?(语法请)。
TIA
设置绑定的RelativeSource
为Self
,即样式化的ListViewItem:
<Setter Property="Background"
Value="{Binding Path=(v:ListViewItemBehavior).Background,
RelativeSource={RelativeSource Self}}" />