Datagrid单元格焦点xaml

时间:2016-05-17 14:34:04

标签: wpf xaml datagrid

如何在datagrid中添加新项目后禁用下一个单元格聚焦?请注意,我正在以MVVM模式执行我的应用程序。

1 个答案:

答案 0 :(得分:1)

您无法禁用下一个项目的选择。它是datagrid的预期行为。 我希望您想要一种行为,例如当用户点击某一行时应该选择它,并且当添加新值时,您不希望选择自动更改。 为此,最好的做法是将datagrid的 SelectedInex 绑定到某个属性,然后在更新数据时更改选择时手动设置它。 您也可以在 SelectedIndex 属性的设置器中设置所需的行为。

实际上有几种方法可以在DataGrid中选择项目。这取决于哪一个最适合这种情况

首先,最基本的是SelectedIndex,这只会选择DataGrid中该索引处的Row

 <DataGrid SelectedIndex="{Binding SelectedIndex}" />

private int _selectedIndex;
public int SelectedIndex
{
    get { return _selectedIndex; }
    set { _selectedIndex = value; NotifyPropertyChanged("SelectedIndex"); }
}

SelectedIndex = 2;

SelectedItem将选择与您设置的行匹配的行

<DataGrid SelectedItem="{Binding SelectedRow}" />

private DataRow _selectedRow;
public DataRow SelectedRow
{
    get { return _selectedRow; }
    set { _selectedRow = value; NotifyPropertyChanged("SelectedRow");}
}

SelectedRow = items.First(x => x.whatever == something);