このコードを使用して自動スクロールしようとしている WPF DataGrid があります。
private void mydatagrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
mydatagrid.ScrollIntoView(mydatagrid.CurrentItem);
}
私が抱えている問題は、DataGrid の SelectedIndex が変更されるたびに、このイベント ハンドラーが呼び出されないことです。はい、グリッドをクリックしたり、アイテムを追加または削除したりすると呼び出されますが、現在選択されているアイテムを基になるコレクションで上下に移動するなど、他のアクションでは呼び出されません。
mydatagrid.ItemsSource = Seq;
(ここで、Seq は ObservableCollection<> から派生した型のオブジェクトです)。
私のトラブルシューティングの試みでは、TextBlock のテキストを mydatagrid の SelectedIndex プロパティにバインドしました。データグリッドおよび/または基になるデータ ソースで実行するアクションに関係なく、インデックス番号は完全に更新されます。
だから私の質問は:私の小さなテキストブロックバインディングの例と同じように、SelectedIndexの値へのANYおよびALL変更時に呼び出されるC#コードでイベントハンドラーを作成するにはどうすればよいですか?
DataGrid の propertyChanged イベントを見つけようとしましたが、役に立ちませんでした。リモートで関連していると思われる DataGrid のすべてのイベントを利用しようとしましたが、役に立ちませんでした。基になるコレクションの CollectionChanged イベントも使用してみましたが、これはデータグリッドとうまく同期していないようです (少なくともイベントが発生した時点では)。
ありがとう