プロパティを設定した場合:
EnableRowVirtualization="True"
RowDetailsVisibilityMode="VisibleWhenSelected"
SelectionMode="Extended"
SelectionUnit="Cell"
私のデータグリッド、次に:
int parse = dataGrid1.SelectedIndex;
「-1」を返すのはなぜですか?
グリッドで何も選択されていません。これはゼロから始まるインデックスであるため、最初の行/アイテムは「0」を返します。MSDNのドキュメントによると:
選択範囲が空の場合、SelectedIndex は -1 を返します
コードの次の行は
if (parse >= 0)
{
//...
}
このようなほとんどのコントロールは、何も選択されていないときのSelectedIndex
ように戻ります。-1
(これは、たとえばListBox
and too にも当てはまります。)ComboBox
datagrid SelectionUnit="Cell" の場合、使用する必要があります
int parse = datagrid1.Items.IndexOf(datagrid1.CurrentItem)
datagrid SelectionUnit="FullRow" の場合、使用できます
int parse = datagrid1.SelectedIndex