单个DataGrid行可见性
我有一个WPF DataGrid
绑定到一个父EF对象内部的Entity Framework
对象的集合。沿着线的东西:单个DataGrid行可见性
<DataGrid ItemsSource="{Binding SelectedCustomer.Orders}" />
现在,当我想“删除”的命令,我不希望真正从数据源中删除它,我只是希望它的IsDeleted
属性设置为true,以便数据被保留。
我的问题是:如果IsDeleted
属性为真,我怎么才能让我的DataGrid
跳过一行?我真的想使用绑定而不是代码隐藏。像这样的东西将是美好的:
<DataGrid ItemsSource="{Binding SelectedCustomer.Orders}" RowVisibilityPath="IsDeleted" />
种类沿线DisplayMemberPath
。我意识到我需要转换IsDeleted
的状态,但这是一个不同的话题。
任何想法?
您可以使用CollectionView至filter您的数据。
你能举一些例子吗? – 2014-04-21 13:07:01
@ClarkKent:我认为[此博客文章](http://www.abhisheksur.com/2010/08/woring-with-icollectionviewsource-in.html)是一个很好的教程,也有可下载的源文件。 – Ben 2014-04-25 07:29:26
谢谢你的回答! – 2014-04-25 12:03:37
除了使用的CollectionView提到您可以通过RowStyle做到这一点:
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsDeleted}" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
好的,谢谢! – 2014-04-21 13:11:00
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Visibility" Value="{Binding IsDeleted, Converter={StaticResource BoolToVisibility}}"/>
</Style>
</DataGrid.RowStyle>
只是包装的收集和包装中取出。其他一切都太复杂了。不应该是一个适当的视图模型的问题。 – Falcon 2011-05-08 15:23:30