gpt4 book ai didi

c# - 单击列表框中的按钮时选择列表框中的行

转载 作者:行者123 更新时间:2023-11-30 22:08:53 26 4
gpt4 key购买 nike

我假设这是一件我遗漏的简单事情。

我正在编写的 WPF 应用程序中有一个 ListBox。每行都有一个按钮,可以根据按钮所在的行执行简单的操作。如果用户直接单击按钮,则 ListBox 上的 SelectedItem 为空。如果我首先单击该行,然后按预期单击 SelectedItem 按钮。

我希望能够在单击按钮时选中按钮所在的行。同样,我假设我遗漏了一些简单的东西,但到目前为止我的搜索是空的。

最佳答案

如果您想在点击 ListBoxItem 的按钮时选择 ListBoxItem,您可以通过将点击处理程序附加到您的按钮来实现。

假设您有用于 ListBox 声明的 XAML:

<ListBox x:Name="listBox" ItemsSource="{Binding SourceCollection}">
<ListBox.ItemTemplate>
<DataTemplate>
<Button Content="{Binding PropertyName}" Click="Button_Click"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

您可以从处理程序中选择 listBoxItem:

private void Button_Click(object sender, RoutedEventArgs e)
{
ListBoxItem selectedItem = (ListBoxItem)listBox.ItemContainerGenerator.
ContainerFromItem(((Button)sender).DataContext);
selectedItem.IsSelected = true;
}

访问按钮的DataContext,这将与ListBoxItem相同。因此,您可以使用它从 ItemContainerGenerator 获取容器元素,即 ListBoxItem。

在获取的 listBoxItem 上将 IsSelected 设置为 True

关于c# - 单击列表框中的按钮时选择列表框中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21972065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com