Visibility of individual DataGrid rows

entity-framework wpf

Question

I have a WPF DataGrid bound to a collection of Entity Framework objects that's inside a parent EF object. Something along the lines of:

<DataGrid ItemsSource="{Binding SelectedCustomer.Orders}" />

Now when I want to "delete" an Order, I don't want to actually delete it from the data source, I simply want to set its IsDeleted property to true so the data is retained.

My question is: how can I get my DataGrid to skip a row if it's IsDeleted property is true? I would really like to use binding and not codebehind. Something like this would be wonderful:

<DataGrid ItemsSource="{Binding SelectedCustomer.Orders}" RowVisibilityPath="IsDeleted" />

Kind of along the lines of DisplayMemberPath. I realize I would need to convert the state of IsDeleted, but that's a different topic.

Any ideas?

1
7
9/24/2012 7:29:21 PM

Popular Answer

Aside from using a CollectionView as mentioned you can do this via the 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>
24
5/8/2011 4:29:40 PM


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow