dxg:GridColumn DevExpress 中的数据触发器
Posted
技术标签:
【中文标题】dxg:GridColumn DevExpress 中的数据触发器【英文标题】:data Triggers in dxg:GridColumn DevExpress 【发布时间】:2022-01-12 08:13:45 【问题描述】:大家好,希望你们一切顺利。 我正在将 devExpress 与 wpf 一起使用,但我陷入了困境: 我有 dxg:GridColumn 接收一个布尔值,我想改变这个单元格的内容取决于这个布尔值,如下所示 如果真显示=>“锁定” if False show => "解锁"
<dxg:GridColumn IsSmart="True" FieldName="IsLocked" Header="x:Static localization:Resources.Property_IsLocked">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings HorizontalContentAlignment="Center" Style="DynamicResource trythisone">
</dxe:TextEditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
我将样式设置为这样
<Style x:Key="trythisone" TargetType="x:Type dxe:TextEditSettings">
<Style.Triggers>
<DataTrigger Binding="Binding Path=Text" Value="True">
<Setter Property="TextBlock.Text" Value="okokok"/>
</DataTrigger>
<DataTrigger Binding="Binding Path=Content" Value="False">
<Setter Property="TextBlock.Text" Value="ssssssssssssss"/>
</DataTrigger>
</Style.Triggers>
</Style>
【问题讨论】:
【参考方案1】:我认为你可以使用DisplayTextConverter:
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
...
<dxg:GridColumn IsSmart="True" FieldName="IsLocked" Header="x:Static localization:Resources.Property_IsLocked">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayTextConverter="dxmvvm:BooleanToObjectConverter TrueValue=Locked, FalseValue=UnLocked" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
【讨论】:
【参考方案2】:我在没有 DevExpress 的情况下解决了这个问题
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock TextAlignment="Center">
<TextBlock.Style>
<Style TargetType="x:Type TextBlock">
<Style.Triggers>
<DataTrigger Binding="Binding Path=Data.IsLocked" Value="True">
<Setter Property="Text" Value="x:Static localization:Resources.Locked"/>
</DataTrigger>
<DataTrigger Binding="Binding Path=Data.IsLocked" Value="False">
<Setter Property="Text" Value="x:Static localization:Resources.UnLocked"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
【讨论】:
以上是关于dxg:GridColumn DevExpress 中的数据触发器的主要内容,如果未能解决你的问题,请参考以下文章