2017-02-27 79 views
1

我有一个文章集合,其中一些有价格,有些则没有。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中实现想要的结果?谢谢。

回答

0

尝试设置IsEnabledfalse禁用输入

还设置ForegroundTransparent:在0值将是有,但不可见

<DataTrigger Binding="{Binding Mesurage.HasPrice}" Value="False"> 
    <Setter Property="IsEnabled" Value="False"/> 
    <Setter Property="Foreground" Value="Transparent"/> 
</DataTrigger> 
+0

谢谢!那就是诀窍。我确实尝试将ForeGround设置为白色但我可以在选择该行时看到该值。我不知道透明度可能会带来价值。 – Hugo

+0

前景是'Brush'类型的属性。它可以采取“透明”,“红色”,“绿色”,“蓝色”字符串等,并将它们转换为“SolidColorBrush”。它可以采用其他类型的画笔,'LinearGradientBrush'。还有一个特殊的'{x:Null}'值(在xaml中相当于'null')。如果我的答案有帮助,透明/ x:空常常用于隐藏元素 – ASh

+0

,请将其标记为已接受,请 – ASh

相关问题