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