我有一個datagrid,每行有兩個按鈕 - 一個用於向上移動一行,另一個用於向下移動一行。DataGrid在WPF中的問題
每個按鈕都有一個允許用戶在任一方向移動選定行的命令。我面臨的問題是它無法正常工作。我認爲我可能遇到的問題是行上的其他控件(組合框)通過MVVM模型綁定到數據源,我在這裏操縱XAML後面的代碼上的行,認爲這將是合理的地方哪一個去做。
我有一個按鈕的代碼如下:
private void MoveRowDown(object sender, ExecutedRoutedEventArgs e)
{
int currentRowIndex = dg1.ItemContainerGenerator.IndexFromContainer(dg1.ItemContainerGenerator.ContainerFromItem(dg1.SelectedItem));
if (currentRowIndex >= 0)
{
this.GetRow(currentRowIndex + 1).IsSelected = true;
}
}
private DataGridRow GetRow(int index)
{
DataGridRow row = (DataGridRow)dg1.ItemContainerGenerator.ContainerFromIndex(index);
if (row == null)
{
dg1.UpdateLayout();
dg1.ScrollIntoView(selectedAttributes.Items[index]);
row = (DataGridRow)dg1.ItemContainerGenerator.ContainerFromIndex(index);
}
return row;
}
謝謝,但我最後通過在幾行代碼中通過MVVM模式在observable類集合上使用move方法做了另一個操作 – Andy5