我有一个DataGrid,DataContext是一个包含许多属性的对象列表。
所有列都绑定到所述对象类型的不同属性。
如果另一个bool属性设置为“true”,我只关心一个text属性 - 当它为“false”时我根本不想显示text属性。
你有什么方法可以建议吗?
我在考虑以下几点:
foreach (var cur in DG.ItemsSource) {
if (!cur.BoolThatSignifiesIfICareAboutOtherProperty) {
//some code that will make the cell for cur.PropertyIMayOrMayNotCareAbout
//appear empty even though that property does have a value that the column
//is bound to
}
}
**编辑**
有人建议我使用数据触发器。所以这就是我尝试过的,但它也行不通。它也没有给出任何错误,所以我不知道我做错了什么。
这是我到目前为止所拥有的。但它不起作用。请让我知道我做错了什么:
<DataGridTextColumn Header="EndDate" Binding="{Binding Path=EndDate, Converter={StaticResource DT2D}}">
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DoICare}" Value="False">
<Setter Property="Content" Value=" " />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
答案 0 :(得分:0)
所以这就是我解决它的方法 - 我只是错了一些标签:
<DataGridTextColumn Header="EndDate" Binding="{Binding Path=EndDate, Converter={StaticResource DT2D}}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DoICare}" Value="False">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>