2011-01-20 11 views
6

「Match」タイプの項目でいっぱいのリストボックスがあるWPFアプリケーションがあります。 ボタンを(項目内に含まれる)実際に項目を選択して値を抽出できるようにするにはどうすればよいですか?ここでWPFどのListBoxアイテムがクリックされたのかを確認するには

は私のコードです:ボタンをクリックするので、作品でもないが、実際に私は非常にWPFプログラミングを行っていないが、あなたは親を取得しようとすることができた項目に

private void LayButton_Click(object sender, RoutedEventArgs e) 
{ 
    var x = (Market)ListBoxSelectedMarket.SelectedItem; 
    var y = (sender as ListBoxItem); 

} 

おかげ

答えて

12

クリックしたButtonからDataContextを使用してそこからListBoxItemコンテナを取得し、それを選択できるはずです。

private void LayButton_Click(object sender, RoutedEventArgs e) 
{ 
    Button button = sender as Button; 
    var dataContext = button.DataContext; 
    ListBoxItem clickedListBoxItem = ListBoxSelectedMarket.ItemContainerGenerator.ContainerFromItem(dataContext) as ListBoxItem; 
    clickedListBoxItem.IsSelected = true; 
} 
+0

ありがとうございます! – Chris

0

を選択していませんWinFormsコンテナオブジェクトと同じように動作する場合、ボタンの

0

オブジェクトにバインドされている場合は別の方法は、(VBで)可能性があり

これは、あなたがリストボックス

上の任意のマッピングフィールドを持つあなたと遊ぶためにあなたのオブジェクトのインスタンスを与え、節約
Private Sub OTC_Settled_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) 
     Dim pr_YourObject As New YourObject 
     Dim btn As Button = CType(sender, Button) 
     OTC = DirectCast(btn.DataContext, pr_YourObject) 
    End Sub 
関連する問題