我有一个WPF应用程序,其中有一个列表框中填充了“匹配”类型的项目。 如何使按钮(包含在项目中)实际选择项目以便我可以提取值?
这是我的代码:由于点击按钮实际上没有选择项目
,因此无效private void LayButton_Click(object sender, RoutedEventArgs e)
{
var x = (Market)ListBoxSelectedMarket.SelectedItem;
var y = (sender as ListBoxItem);
}
由于
答案 0 :(得分: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;
}
答案 1 :(得分: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
答案 2 :(得分:-1)
我没有做太多的WPF编程,但如果它与WinForms容器对象的工作方式相同,你可以尝试获取该按钮的父级。