XAML DataGridTextColumn:条件为false时显示空单元格

时间:2017-02-27 14:18:44

标签: c# wpf xaml datagrid

我有一个文章集合,其中一些有价格,有些则没有。

当价格可用时,我希望我的数据网格显示它,即使它是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中实现想要的结果?谢谢。

1 个答案:

答案 0 :(得分:0)

尝试将IsEnabled设置为false以禁用输入

还将Foreground设置为Transparent0值将在那里,但不可见

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