如果我设置属性:
EnableRowVirtualization="True"
RowDetailsVisibilityMode="VisibleWhenSelected"
SelectionMode="Extended"
SelectionUnit="Cell"
我的数据网格,然后:
int parse = dataGrid1.SelectedIndex;
返回“-1”,为什么?
您没有在网格中选择任何内容 - 请记住它是从零开始的索引,因此第一行/项目将返回“0”。根据MSDN 文档:
如果选择为空,SelectedIndex 返回 -1
你的下一行代码应该是
if (parse >= 0)
{
//...
}
像这样的大多数控件将在未选择任何SelectedIndex
内容-1
时返回。ListBox
(例如,这也是如此ComboBox
。)
如果 datagrid SelectionUnit="Cell" 那么你必须使用
int parse = datagrid1.Items.IndexOf(datagrid1.CurrentItem)
如果 datagrid SelectionUnit="FullRow" 那么你可以使用
int parse = datagrid1.SelectedIndex