gpt4 book ai didi

wpf - 在 WPF 中的数据绑定(bind)组合框中禁用分隔符选择

转载 作者:行者123 更新时间:2023-12-02 08:56:49 25 4
gpt4 key购买 nike

我有一个数据绑定(bind)的组合框。在这个列表中,我需要一个分隔符。由于这是数据绑定(bind)的,我做了一些与 this post 非常相似的事情。 .我的数据库返回列表,包括一个“-”来标记分隔符需要去的位置,并且数据触发器将其作为分隔符。

<ComboBox Name="cbAction" Grid.Column="1" Grid.Row="0" Margin="5,2,5,2" DisplayMemberPath="Description" SelectedValuePath="Code" SelectionChanged="cbAction_SelectionChanged">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}" BasedOn="{StaticResource {x:Type ComboBoxItem}}">
<Style.Triggers>
<DataTrigger Binding="{Binding Code}" Value="-">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Separator HorizontalAlignment="Stretch" IsEnabled="False"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>

除了我在这里遇到的问题和一个小设计问题(我将在另一个问题中提出)之外,这几乎可以正常工作。

使用鼠标时,用户无法选择分隔符,这是正确的。但是如果用户使用向上/向下箭头选择项目,他们可以选择分隔符。这不是默认行为,它会跳过分隔符。

如果您的 XAML 具有各种 ComboBoxItems 和一个分隔项(使用向上和向下键时跳过分隔符),我如何使此分隔符的行为类似于它的行为方式

最佳答案

不要像 Meleak 建议的那样设置“Focusable”,而是在 Setter 中将“IsEnabled”设置为 false。

<DataTrigger Binding="{Binding Code}" Value="-"> 
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Separator HorizontalAlignment="Stretch"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>

关于wpf - 在 WPF 中的数据绑定(bind)组合框中禁用分隔符选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4261208/

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