2011-01-20 24 views
6

Bir WPF uygulamasında, içinde 'Eşleştir' türü öğelerle dolu bir liste kutusu var. Değeri çıkarabilmem için düğmeyi (öğe içinde bulunan) gerçekten öğeyi nasıl seçebilirim? İşte WPF Hangi liste kutusu öğesinin tıklatıldığını nasıl bulabilirim

benim kodudur: ne aslında et

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

} 

Teşekkür

seçmez butonuna tıklayarak beri çalışmaktadır

cevap

12

DataContext'i tıklatılmış Düğme'den kullanabilmeniz ve ListBoxItem kabını oradan çıkarabilmeniz ve sonra onu seçebilmeniz gerekir. Bir nesneye bağlanma ise

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

Bu işe yarıyor, Teşekkürler! – Chris

0

ben çok WPF programlama yapmadıysanız, ancak ebeveyn kurmayı deneyebilirsiniz Düğme, bir WinForms kapsayıcısı nesnesiyle aynı şekilde çalışıyorsa.

0

alternatif bir yöntem (VB) olabilir

Bu da size oynamak için nesnenin bir örneğini verir ve listbox

üzerinde herhangi haritalama alanlarını sahip kaydeder
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 
İlgili konular