【问题标题】:WPF XAML Combo Box IsEnabled based on previous selection基于先前选择的 WPF XAML 组合框 IsEnabled
【发布时间】:2017-12-06 19:58:23
【问题描述】:

在 WPF XAML 中,我希望仅在前一个组合框中选择了某些内容时才启用组合框。 “顶级”组合提示用户进行选择 - 因此,当他们在列表中选择某些内容时,下一个组合应该会启用。

我可以使用 DataTemplate / Trigger 来执行此操作,还是可以使用 Element Binding 来完成?

谢谢各位。

【问题讨论】:

  • 这真的取决于你想做什么以及如何去做。例如,如果您使用的是视图模型,您可以简单地定义一个布尔属性,当前一个组合框的选择发生更改时,该属性将切换为 true。如果你想要一个更准确的答案,你应该给我们一些代码 sn-ps,你可以在其中展示你到目前为止所做的尝试
  • 嗨,我希望尽可能在 XAML 中完成所有操作。类似于 IsEnabled="{Binding SelectedValue, ElementName=cboMachineType}"
  • 你可以使用Converter
  • @Martin,请出示您拥有的代码

标签: wpf xaml


【解决方案1】:

你可以试试这个

<ComboBox Name="comboBox1">
    <ComboBoxItem>Some Content</ComboBoxItem>
    <ComboBoxItem>Some More Content</ComboBoxItem>
</ComboBox>

<ComboBox Name="comboBox2">
    <ComboBoxItem>Content Here</ComboBoxItem>        
        <ComboBox.Style>
            <Style TargetType="{x:Type ComboBox}">
                <Setter Property="IsEnabled" Value="True"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=SelectedItem , ElementName=comboBox1}" Value="{x:Null}">
                        <Setter Property="IsEnabled" Value="False"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
      </ComboBox.Style>
 </ComboBox>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多