0

現在、ユーザーが選択したデータグリッド行のコレクションを取得しようとしています (複数行選択)。

各行は、選択したものとして表示したいビジュアル オブジェクトにバインドされています」

したがって、データ グリッドには、次のスタイルを追加しました。

<Style TargetType="DataGridRow">
      <EventSetter Event="Selected" Handler="DataGrid_RowSelectionChanged" />
</Style>

したがって、ユーザーが行を選択すると、イベントが発生します。

ただし、行を選択してイベントに入る場合。選択したアイテムはまだ更新されておらず、以前に選択したアイテムがまだ表示されています。DataGrid.CurrentItem は、クリックしたばかりで選択しようとしている行を示していますが、複数選択されているため、現在選択されているすべての行を取得し、視覚オブジェクトを「強調表示」できるようにしたいと考えています。

データグリッドから選択したアイテムの最も更新されたリストを取得する方法はありますか? 新しい行を選択した後に発生する、使用できるイベントはありますか?

よろしくお願いします、ケブ

4

1 に答える 1

2

DataGrid.SelectionChangedイベントを使用します。にはSelectionChangedEventArgs、選択変更時に追加または削除された項目が含まれます。

        DataGrid dg = new DataGrid();
        dg.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(OnSelectionChanged);

        void OnSelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            foreach (var addedItem in e.AddedItems)
            {
                //do stuff
            }

            foreach (var removedItem in e.RemovedItems)
            {
                //do stuff
            }
        }
于 2011-01-21T14:32:44.433 に答える