Как связать со свойством DataGrids Items - PullRequest
0 голосов
/ 24 мая 2018

При сортировке столбца в DataGrid свойство ItemsSource фактически не сортирует, однако свойство Items делает это.ItemsSource привязан к ObservableCollection в моей модели представления, но свойство Items имеет только геттер, поэтому оно не позволяет мне связывать его, как я это делал с ItemsSource.

У меня есть ResultsView, а затемItemView;ResultsView содержит DataGrid с моим связанным ItemsSource, а ItemView отображает текущий выбранный элемент в DataGrid.У меня есть следующая и предыдущая кнопка в ItemView, которая позволяет пользователю перебирать DataGrid (дает им следующий / предыдущий элемент в коллекции), но моя проблема в том, что когда он был отсортирован по столбцу, следующий или предыдущий элементы некак они выглядят в DataGrid.

например

Несортированные элементы: [0], [1], [2], [3], [4], [5] - далееи предыдущий дает вам следующий / предыдущий элемент в том виде, в каком они отображаются в DataGrid

Сортированные элементы: [3], [0], [4], [5], [1], [2] - еслипользователь имеет [3] открытый в ItemView и нажимает следующий, затем [4] откроется вместо [0], потому что я просто даю им следующий элемент в ItemsSource.

Свойство Items содержит отсортированный ItemsSource, так что если ямог бы как-то привязаться к этому, тогда я мог бы вместо этого дать им следующий / предыдущий элемент в этой коллекции.

<customControls:CustomDataGrid x:Name="GridControl"
                                   DataContext="{Binding CustomDataGridViewModel}"
                                   Items="{Binding SortedResults, Mode=OneWayToSource}"
                                   ItemsSource="{Binding DataContext.DataGridResults, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
                                   SelectedItem="{Binding DataContext.SelectedReferral, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
                                   Style="{DynamicResource MetroDataGrid}"
                                   AutoGenerateColumns="False"
                                   IsReadOnly="False"
                                   BeginningEdit="GridControl_OnBeginningEdit"
                                   CanUserAddRows="False"
                                   ColumnInfoCollection="{Binding ColumnInfoCollection}"
                                   Grid.Row="1"
                                   BorderBrush="{DynamicResource AccentColorBrush3}"
                                   BorderThickness="2,0,2,2">

"Свойство" Предметы "не имеет доступного получателя"

1 Ответ

0 голосов
/ 24 мая 2018

вы не можете использовать связывание Items и ItemsSource вместе ...!

Вы должны использовать CollectionVew и управлять сортировкой по нему, а затем управлять пейджингом.источник

пока

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...