我有一個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