私は各行に2つのボタンがあり、1つは行を上に移動し、もう1つは行を下に移動するデータグリッドを持っています。WPFのDataGridの問題
各ボタンには、ユーザーが選択した行をどちらの方向にも移動できるようにするコマンドがあります。私が直面している問題は、それが機能していないということです。私の問題は、行の他のコントロール(コンボボックス)が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パターンを使って観測可能なクラスコレクションのmoveメソッドを2行のコードで使用して、もう一度やりました – Andy5