我有一个由组合框过滤的Datagrid,我想使用 up 和 down 按钮交换此数据网格中的行。
我有 up 按钮的以下代码,但在交换行之后,datagrid数据源中的项目将更改为与已过滤的项目相匹配,并且其他行也将被删除。“ p>
这是我的代码:
$Id: $
如何在不影响数据源的情况下更改订单?
答案 0 :(得分:1)
我将此代码用于 up 按钮,它起作用了:
if (Datagrid1.SelectedIndex != -1 && Datagrid1.SelectedIndex != 0)
{
int index = Datagrid_PMP.SelectedIndex;
DataRow downrow = ((DataRowView)(Datagrid1.SelectedItem)).Row;
DataRow temprow = sourceTable.NewRow();
temprow.ItemArray = downrow.ItemArray;
sourceTable.Rows.Remove(downrow);
Datagrid1.SelectedIndex = index - 1;
DataRow uprow = ((DataRowView)(Datagrid1.SelectedItem)).Row;
int i = dset.Tables[2].Rows.IndexOf(uprow);
sourceTable.Rows.InsertAt(temprow, i);
Datagrid1.SelectedIndex = index - 1;
}
答案 1 :(得分:0)
问题在于,在下一行中,您使用当前过滤的视图替换项目列表:
Datagrid1.ItemsSource = dt.DefaultView;
在此之后,只有与您的过滤器匹配的项目才会填充网格。