gpt4 book ai didi

c# - 在 WPF 中的组合框顶部有一个可单击的按钮

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

我可以让一个按钮出现在组合框的下拉列表中并且可以点击,但是我无法让选定的组合框项目(下拉列表已关闭)使按钮可以点击。它总是跳过按钮点击,只打开下拉列表。我基本上希望我设置的 Button_Click 事件处理程序在单击后被调用。这是我的示例组合框,它显示了按钮,但一旦位于所选项目中就不可点击:

<ComboBox x:Name="MyCombo" Width="200" Height="30" ItemsSource="{Binding ListCombo}">
<ComboBox.Resources>
<DataTemplate DataType="{x:Type local:ComboItemClass}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=SampleText}" Width="120" />
<Button Width="20" Content="..." Click="Button_Click"/>
</StackPanel>
</DataTemplate>
</ComboBox.Resources>
</ComboBox>

最佳答案

将按钮放在组合框内是我们现在可以在 WPF 中实现的非常酷的功能之一,我们(包括我在内)对此感到非常兴奋,然后才停下来考虑是否应该这样做。

在组合框中放置一个按钮很容易让用户感到困惑。我建议您将组合框列表项中的数据绑定(bind)到组合框外的按钮,您的用户会期望它。这样,您仍然可以通过从组合框中选择一个项目来更改按下按钮的最终结果。

编辑:

如果您有足够的空间,列表框可​​以完美地满足您的需求。

    <ListBox>
<ListBoxItem>
<StackPanel Height="34" HorizontalAlignment="Left" Margin="12,16,0,0" VerticalAlignment="Top" Width="430" Orientation="Horizontal">
<Button Content="Edit" />
<Button Content="Delete" />
<TextBlock Text="Port Information here" VerticalAlignment="Center" Margin="20,0" />
</StackPanel>

</ListBoxItem>
<ListBoxItem>
<StackPanel Height="34" HorizontalAlignment="Left" Margin="12,16,0,0" VerticalAlignment="Top" Width="430" Orientation="Horizontal">
<Button Content="Edit" />
<Button Content="Delete" />
<TextBlock Text="Port Information here" VerticalAlignment="Center" Margin="20,0" />
</StackPanel>

</ListBoxItem>
<ListBoxItem>
<StackPanel Height="34" HorizontalAlignment="Left" Margin="12,16,0,0" VerticalAlignment="Top" Width="430" Orientation="Horizontal">
<Button Content="Edit" />
<Button Content="Delete" />
<TextBlock Text="Port Information here" VerticalAlignment="Center" Margin="20,0" />
</StackPanel>

</ListBoxItem>

关于c# - 在 WPF 中的组合框顶部有一个可单击的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2740732/

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