我有一个文章集合,其中一些有价格,有些则没有。
当价格可用时,我希望我的数据网格显示它,即使它是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但它仍然在我的网格中显示它。另外,无法在触发器中修改IsReadOnly属性,因此我使用了Focusable属性。
有没有办法只在XAML中实现想要的结果?谢谢。
答案 0 :(得分:0)
尝试将IsEnabled
设置为false
以禁用输入
还将Foreground
设置为Transparent
:0
值将在那里,但不可见
<DataTrigger Binding="{Binding Mesurage.HasPrice}" Value="False">
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Foreground" Value="Transparent"/>
</DataTrigger>