XAML DataGridTextColumn:当条件为假时显示一个空单元格
问题描述:
我有一个文章集合,其中一些有价格,有些则没有。XAML DataGridTextColumn:当条件为假时显示一个空单元格
当价格可我想我的数据网格显示,即使它是0
当价格是不可能的物品上的默认值是0,我不希望它出现在数据网格和单元格应该只读。
这是我的尝试:
<DataGridTextColumn Header="PU" Binding="{Binding PU, UpdateSourceTrigger=PropertyChanged}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<DataTrigger Binding="{Binding Mesurage.HasPrice}" Value="False">
<Setter Property="Focusable" Value="False"/>
<Setter Property="TextBlock.Text" Value="{Binding PU, StringFormat=0;;#, UpdateSourceTrigger=PropertyChanged}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
我使用的StringFormat隐藏0,但它仍然显示在我的网格。 Aslo IsReadOnly属性无法在触发器中修改,所以我使用了Focusable属性。
有没有办法在XAML中实现想要的结果?谢谢。
答
尝试设置IsEnabled
到false
禁用输入
还设置Foreground
到Transparent
:在0
值将是有,但不可见
<DataTrigger Binding="{Binding Mesurage.HasPrice}" Value="False">
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Foreground" Value="Transparent"/>
</DataTrigger>
谢谢!那就是诀窍。我确实尝试将ForeGround设置为白色但我可以在选择该行时看到该值。我不知道透明度可能会带来价值。 – Hugo
前景是'Brush'类型的属性。它可以采取“透明”,“红色”,“绿色”,“蓝色”字符串等,并将它们转换为“SolidColorBrush”。它可以采用其他类型的画笔,'LinearGradientBrush'。还有一个特殊的'{x:Null}'值(在xaml中相当于'null')。如果我的答案有帮助,透明/ x:空常常用于隐藏元素 – ASh
,请将其标记为已接受,请 – ASh