用户选择另一个后重置 DataGrid.SelectedIndex
Reset DataGrid.SelectedIndex after user has selected another
在我正在使用的 UI 中,在 DataGrid
中,有些情况下用户可能 select 不同的行,但在对话交互之后,旧的行需要再次显示为 selected。如果我只是尝试
BundleQueueDG.SelectedIndex = currentBundleIndex;
那什么都不做,事实上,一旦 SelectionChanged
方法退出,它就会更改为新值。 "re-select" 以前 select 编辑的行的最佳方法是什么?
尝试设置 SelectedItem 属性。保留之前选择的内容并将 SelectedItem 设置为之前在您的事件中选择的内容。
像这样:
private void DgDataGrid_OnSelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
int newIndex = (sender as DataGrid).SelectedIndex / 2;
if (Convert.ToInt32(newIndex) >= 1)
(sender as DataGrid).SelectedItem = previous;
else
{
previous = (sender as DataGrid).CurrentItem;
}
}
在我正在使用的 UI 中,在 DataGrid
中,有些情况下用户可能 select 不同的行,但在对话交互之后,旧的行需要再次显示为 selected。如果我只是尝试
BundleQueueDG.SelectedIndex = currentBundleIndex;
那什么都不做,事实上,一旦 SelectionChanged
方法退出,它就会更改为新值。 "re-select" 以前 select 编辑的行的最佳方法是什么?
尝试设置 SelectedItem 属性。保留之前选择的内容并将 SelectedItem 设置为之前在您的事件中选择的内容。 像这样:
private void DgDataGrid_OnSelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
int newIndex = (sender as DataGrid).SelectedIndex / 2;
if (Convert.ToInt32(newIndex) >= 1)
(sender as DataGrid).SelectedItem = previous;
else
{
previous = (sender as DataGrid).CurrentItem;
}
}