Мне нужно отфильтровать элементы, отображаемые на DataGrid. Для этого я сделал функцию OnlyActiveTile, где я даю DataTable, который мне нужно фильтровать. Фильтрация работает, но есть проблема: когда я нажимаю кнопку для переключения между ItemsSource, мой DataSet не обновляется. Я что-то упускаю, но не знаю что ...
private void OnlyActiveClick(DataTable DT, string ColumnName, DataGrid DG, Tile OnlyActiveTile, bool ToggleActive)
{
if (ToggleActive)
{
DG.ItemsSource = new DataView(DT.AsEnumerable().Where(row => row.Field<bool>(ColumnName) == true).CopyToDataTable());
DT.GetChanges();
DT.AcceptChanges();
OnlyActiveTile.Background = Brushes.DarkSeaGreen;
}
else
{
DG.ItemsSource = new DataView(DT);
DT.GetChanges();
DT.AcceptChanges();
OnlyActiveTile.Background = Brushes.IndianRed;
}
}
private void ZoneOnlyActive_Click(object sender, RoutedEventArgs e)
{
if (zone_onlyActive)
{
OnlyActiveClick(databaseDataSet.Zone,"Zone active", zoneDataGrid, ZoneOnlyActive, zone_onlyActive);
zone_onlyActive = false;
}
else
{
OnlyActiveClick(databaseDataSet.Zone, "Zone active", zoneDataGrid, ZoneOnlyActive, zone_onlyActive);
zone_onlyActive = true;
}
}
Если я отфильтрую свои результаты (обновлю ItemsSource), а затем внесу некоторые изменения в DataGrid, мой DataSet не обновится.
Проблема может заключаться в том, что databaseDataSet.Zone - это не DataTable, а defaultDataSet.ZoneDataTable. Так может кто-нибудь сказать мне, что мне следует изменить?
Это приложение представляет собой инструмент настройки. Итак, я показываю много DataGrids, где пользователь может изменять эти конфигурации (например, флажки). Когда я ничего не фильтрую, он работает: каждое изменение сохраняется в моем наборе данных, но когда я использую показанный выше фильтр, он не обновляет мой набор данных. Когда я использую кнопку для переключения между «полным просмотром» и «фильтром», единственные изменения, которые я вижу, - это когда у меня есть «полный вид» ... Я не знаю, достаточно ли я понял ...





Что вы имеете в виду под "затем внесите некоторые изменения в DataGrid, он не обновит мой DataSet"? Какие изменения?