对于视图中的某些DataTemplates,我尝试创建一些DataTriggers,用于更改DataTemplate控件上的属性。基于父类中的属性
下面的伪代码不是真实的的案例,也不是代码。。需要很长时间来解释真实的案例。DataTrigger所做的比这里显示的要多
因此,在DataTemplate“OderValueDT”中,“PreviousOrder”只需要从OderValueDT中绑定\访问父属性“OrderViewModel.AlertUser”。DataTrigger
OrderViewModel{
Property bool AlertUser {get;}
Property PreviousOrder OrderValue {get;}
..
}
PreviousOrder {
Property string OrderComment {get;}
..
}
<OrderView ..>
<DataTemplate x:Key="OderValueDT">
<Border
<TextBlock
Name="PART_Comment"
Text="{Binding OrderComment, Mode=OneWay}"
</TextBlock>
</Border>
</DataTemplate>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=AlertUser, RelativeSource={RelativeSource TemplatedParent}}" Value="True">
<Setter TargetName="PART_Comment" Property="Foreground" Value= "Red"/>
</DataTrigger>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
搜索解决方案已经画了一个空白,我看到的大多数例子是访问父控件,例如。
{Binding Path=DataContext.Index,RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}
但“AlertUser”不是控件
1条答案
按热度按时间dxxyhpgq1#
你指定父模型为
DataContext
的元素的类型为AncestorType
,并绑定到它的DataContext
属性,例如: