각 행에 두 개의 단추가있는 DataGrid가 있습니다. 하나는 행을 위로 이동하고 다른 하나는 행을 아래로 이동하는 것입니다.WPF의 DataGrid 행 문제
각 버튼에는 사용자가 선택한 행을 어느 방향 으로든 움직일 수있는 명령이 있습니다. 내가 직면하고있는 문제는 그것이 작동하지 않는다는 것입니다. 내가 가진 문제는 행의 다른 컨트롤 (콤보 상자)이 MVVM 모델을 통해 데이터 소스에 바인딩된다는 것입니다.이 MVMS 모델에서는 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;
}
감사합니다.하지만 MVMS 패턴을 통해 관찰 가능한 클래스 컬렉션에서 move 메서드를 사용하여 몇 줄의 코드에서 다른 작업을 수행했습니다. – Andy5