wpf - 根据 ComboBox 选择使按钮可见
问题描述
如果使用 XAML 在 ComboBox 中选择了某个值,如何使 Button 显示?
这是我尝试过的。
谢谢
<ComboBox x:Name="ComboBox" Margin="171,102,426,271">
<ComboBoxItem>Testing</ComboBoxItem>
<ComboBoxItem>Again</ComboBoxItem>
<ComboBoxItem>Finally</ComboBoxItem>
</ComboBox>
<Button Margin="10, 0, 0, 0" >
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedIndex, ElementName=ComboBox}" Value="Testing">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
解决方案
绑定路径应该SelectedItem.Content
让您的触发器工作:
<Button Margin="10, 0, 0, 0" >
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem.Content, ElementName=ComboBox}" Value="Testing">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
您当前正在绑定到该SelectedIndex
属性,而该属性的值永远不会是“Testing”。当前选中ComboBoxItem
的 的Content
属性可能有。
如果您想在Button
选择“测试”选项时显示,您还应该修改设置器的值:
<Button Margin="10, 0, 0, 0" >
<Button.Style>
<Style TargetType="Button">
<Setter Property="Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem.Content, ElementName=ComboBox}" Value="Testing">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
推荐阅读
- javascript - 页面加载后加载外部脚本
- r - 按部门分组,然后按财政年度汇总
- css - 你如何将最后一个 'div' 设置在 flexbox 末尾的另一个 'div' 中?
- django - 我们如何在 django 中更改现有用户表中的字段名称
- travis-ci - 成功 travisci 后部署 pypi
- java - HTTPS:如何支持所有 SSL/TLS 协议和密码套件?
- python - 在 Flask 应用程序中使用 zerorpc 会引发错误“操作将永远阻塞”
- java - Apache-poi 模板前导零在编辑单元格时消失
- c++ - 有条件地启用非模板函数 c++
- javascript - 如何在续集中包含字段中更改名称?