【问题标题】:WPF How do I find which ListBox item was clickedWPF 如何找到单击了哪个 ListBox 项
【发布时间】:2011-06-12 20:12:38
【问题描述】:

我有一个 WPF 应用程序,其中有一个列表框,其中填充了“匹配”类型的项目。 如何使按钮(包含在项目中)实际选择项目以便我可以提取值?

这是我的代码:两者都不起作用,因为单击按钮实际上并没有选择项目

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

}

谢谢

【问题讨论】:

    标签: wpf button listbox click listboxitem


    【解决方案1】:

    如果您要绑定到一个对象,另一种方法可能是(在 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】:

      您应该能够使用单击的 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;
      }
      

      【讨论】:

        【解决方案3】:

        我没有做过太多的 WPF 编程,但是如果它与 WinForms 容器对象的工作方式相同,您可以尝试获取按钮的父级。

        【讨论】:

          猜你喜欢
          • 2013-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多