WPF DataTriger 用法示例代码

时间:2023-03-10 02:05:54
WPF DataTriger 用法示例代码

用法1:

  <DataGridTemplateColumn Header="{lex:LocText ExamineRoom}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Name="tb" Text="{Binding ExamineRoom}"> </TextBlock>
<DataTemplate.Triggers>
<DataTrigger Value="False">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource OnlineRoomCoverter}">
<Binding Path="DataContext.OnlineRooms" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=DataGrid}" />
<Binding Path="ExamineRoom" />
</MultiBinding>
</DataTrigger.Binding>
<Setter TargetName="tb" Property="Foreground" Value="Red" />
<Setter TargetName="tb" Property="ToolTip" Value="{lex:LocText RoomNotOnline}" />
</DataTrigger>
</DataTemplate.Triggers> </DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

用法2:

  <DataGridTemplateColumn Header="{lex:LocText ExamineRoom}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Name="tb" Text="{Binding ExamineRoom}">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Value="False">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource OnlineRoomCoverter}">
<Binding Path="DataContext.OnlineRooms" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=DataGrid}" />
<Binding Path="ExamineRoom" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Foreground" Value="Red" />
<Setter Property="ToolTip" Value="{lex:LocText RoomNotOnline}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock> </DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>