2017-01-04 2 views
0

私はC#でwpfアプリケーションを構築しています。私は情報を持ったGridViewを持っています。すべての行にチェックボックスがあります。チェックボックスをクリックすると、(列1の)行のユーザー名の値を受け取りたいと思います。wpfはチェックボックスの値が変更されたときに選択行を取得します

今は動作していますが、行全体を選択する必要があります。それ以外の場合、私はもちろんnull例外を受け取ります。

private void CheckBox_breakfast(object sender, RoutedEventArgs e) 
{ 
    Reservation reservation = gridReservations.SelectedItem as Reservation; 
    string name = reservation.user_name; 
} 

行全体ではなくチェックボックスを選択するだけでどのように動作するのですか?

すでにウェブ上で検索されていますが、何も動作しませんでした。

多くのお手伝いをします。

+1

とは無関係ですが、wpfポテンシャルを利用するにはmvvmパターンを考慮する必要があります。 – Bijan

+0

これを行うにはなぜ 'checked'イベントハンドラを使用できませんか? – KyloRen

+0

はい、すでにやっています。しかし、私はどのように行のIDを取得するのですか? – Jenssen

答えて

2

あなたが予約にあるチェックボックス自体のDataContextのをキャストしようとすることができます:あなたが明示的にセルのCheckBoxのDataContextのか、その親要素のいずれかを設定していない場合は

private void CheckBox_breakfast(object sender, RoutedEventArgs e) 
{ 
    CheckBox checkBox = sender as CheckBox; 
    Reservation reservation = checkBox.DataContext as Reservation; 
    string name = reservation.user_name; 
} 

これは動作するはずです何かに。

+0

ありがとうございます。 – Jenssen

関連する問題