Я ObservableCollection
переплетены в dataGrid
и теперь я хочу, чтобы отфильтровать представленные данные, я вижу, что мне нужно использовать ICollectionView
, но я не уверен, как добавить ICollectionView
с моим MVVM
рисунком.Фильтрация ObservableCollection с ICollectionView
Мой код выглядит упрощены следующие:
public class MainViewModel : ViewModelBase , IBarcodeHandler
{
public ObservableCollection<TraceDataItem> TraceItemCollectionViewSource { get; set; }
}
Мой XAML
<Window xmlns:controls="clr-namespace:Mentor.Valor.vManage.RepairStation.Controls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
<DataGrid Grid.Row="2" ColumnWidth="*" ItemsSource="{Binding TraceItemCollectionViewSource , Mode=TwoWay , UpdateSourceTrigger=PropertyChanged}" RowStyle="{StaticResource TraceRowStyle}" IsReadOnly="True" Name="TraceDataGrid" Margin="5,5,5,5" Padding="5,5,5,5" AutoGenerateColumns="False">
</Window>
Как я могу добавить ICollectionView
здесь, чтобы применить фильтрацию к виду?
@NightWalker Да. Я обновил свой ответ. – Andrew
поэтому каждый раз, когда я меняю TraceItemCollectionViewSource мне нужно RaisePropertyChanged на TraceItemCollectionView, чтобы уведомить пользовательский интерфейс? –
@NightWalker Да, так и есть. Однако вся точка ObservableCollection заключается в том, что вам не нужно ее менять. – Andrew