余白

https://blog.lacolaco.net/ に移転しました

WPFのDataGridで選択されたセルの行インデックスを取得

WPFのDataGridでExcelの表みたいなものを作ってるんですが、選択されたセルの行番号を取得するプロパティがなくて唖然としました。
予想では


int row = dataGrid.CurrentCell.Row;

みたいなものがあると思ってたんですがまさか何列目かしか取得できないとは(CurrentCell.Columnはある)

というわけでいろいろいじった結果こんな感じで取得できました。


int row = dataGrid.Items.IndexOf(dataGrid.CurrentItem);

もっとスマートな方法があったら誰か教えてください。

[追記]
この方法では列をソートするとItemsの並びとdataGridの並びがずれて取得がうまくいかないので、ソートできない設定にしないといけないようです。
どうにか別の方法を探さないと…