0

如果我设置属性:

EnableRowVirtualization="True"
RowDetailsVisibilityMode="VisibleWhenSelected"
SelectionMode="Extended"
SelectionUnit="Cell"

我的数据网格,然后:

int parse = dataGrid1.SelectedIndex;

返回“-1”,为什么?

4

3 回答 3

5

您没有在网格中选择任何内容 - 请记住它是从零开始的索引,因此第一行/项目将返回“0”。根据MSDN 文档

如果选择为空,SelectedIndex 返回 -1

你的下一行代码应该是

if (parse >= 0)
{
     //...
}
于 2012-08-06T13:22:18.320 回答
1

像这样的大多数控件将在未选择任何SelectedIndex内容-1时返回。ListBox(例如,这也是如此ComboBox。)

于 2012-08-06T13:24:19.180 回答
1

如果 datagrid SelectionUnit="Cell" 那么你必须使用

int parse = datagrid1.Items.IndexOf(datagrid1.CurrentItem)

如果 datagrid SelectionUnit="FullRow" 那么你可以使用

int parse = datagrid1.SelectedIndex
于 2018-04-19T14:00:19.600 回答