2011-01-20 3 views
6

'Match'유형의 항목으로 채워진 목록 상자가있는 WPF 응용 프로그램이 있습니다. 어떻게 값을 추출 할 수 있도록 항목 (항목에 포함 된)을 실제로 선택합니까? 여기 WPF 클릭 한 ListBox 항목을 찾으려면 어떻게합니까?

내 코드입니다 : 둘 다 실제로 항목을

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

나는 많은 WPF 프로그래밍을하지 않은,하지만 당신은 부모를 받고 시도해 볼 수도 있습니다 버튼이 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 
관련 문제