我有一个Datagrid,它是由组合框过滤的,我想在此数据网格中使用向上和向下按钮交换行。如何在不影响数据源的情况下交换WPF中过滤的数据网格中的行?
我对按钮有以下代码按钮,但在交换行之后,datagrid的数据源中的项目将更改为匹配已过滤的项目以及其他行也被删除。
这是我的代码:
if (Datagrid1.SelectedIndex != -1 && Datagrid1.SelectedIndex != 0)
{
DataTable dt = ((DataView)Datagrid1.ItemsSource).ToTable();
int index = Datagrid1.SelectedIndex;
DataRow selectedRow = dt.Rows[index];
DataRow newRow = dt.NewRow();
newRow.ItemArray = selectedRow.ItemArray;
dt.Rows.Remove(selectedRow);
dt.Rows.InsertAt(newRow, index - 1);
Datagrid1.ItemsSource = dt.DefaultView;
Datagrid1.SelectedIndex = index - 1;
}
我如何改变它们的顺序,而不会影响数据源?
我强烈建议你考虑为您的项目MVVM解决方案。使用MVVM,这些任务会更容易。 – Chrille
@Chrille我不熟悉MVVM。 – JDM
如果您有时间和需要学习,请尝试搜索本主题中的教程。 “MVVM WPF” – Chrille