如何在进行组合框选择时设置文本框的属性。例如,当组合框选择时,设置背景和文本框的IsEnabled属性。我想要它纯粹在XAML中不在代码后面。我使用MVVM当进行组合框选择时设置文本框的属性WPF XAML
回答
如何启用textBox1中,只有当SelectedItems是1
<TextBox Height="23" HorizontalAlignment="Left" Margin="246,177,0,0" Name="textBox2" VerticalAlignment="Top" Width="120">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="IsEnabled" Value="False"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=comboBox1, Path=SelectedIndex}" Value="1">
<Setter Property="Background" Value="Green"></Setter>
<Setter Property="IsEnabled" Value="True"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
<ComboBox Height="22" HorizontalAlignment="Left" Margin="246,119,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" />
我只是想用XAML无法达到的条件值=“1”或“3”,即在数据触发的关系比平等更复杂。
对于这种情况,你需要一个转换器。 此链接可以帮助你
How to get DataTemplate.DataTrigger to check for greater than or less than?
如何在数据触发器中有两个或多个条件,或为属性指定多个值,例如
您可以使用组合的选择对象datatrigger。看看以前的这个问题:WPF Visibility of a UI element based on combo selection
尝试生成触发器时,selecteditem是{x:Null}
。为此,您需要将控件放入DataTemplate中,并将触发器放入模板的触发器集合中。
这里是一个示例代码(未测试,请你自己检查):
<TextBox Height="23" HorizontalAlignment="Left" Margin="246,177,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" IsEnabled" Value="True" />
<ComboBox Height="22" HorizontalAlignment="Left" Margin="246,119,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" />
<DataTemplate.Triggers>
<Trigger SourceName="comboBox1" Property="ComboBox.SelectedItem" Value="{x:Null}">
<Setter TargetName="textbox2" Property="TextBox.IsEnabled" Value="False" />
</Trigger>
</DataTemplate.Triggers>
我们可以这样做
看起来像你正在采取逆逻辑。为什么不检查SelectedItem == null? – 2012-05-08 12:30:56
你怎么可以给它代码 – user1379584
- 1. Xaml当组合框选择变化时更改TextBlock的文本
- 2. 当选择组合框/文本框时选择ListView项目WPF MVVM
- 3. 当组合框选择时填充文本框
- 4. 当组合框选择时从mysql中更改文本框值
- 5. c#wpf组合框选择
- 6. 属性WPF中的组合框
- 7. WPF XAML组合框宽度
- 8. XAML组合框错误WPF
- 9. 选择组合框到文本框
- 10. WPF组合框选择行为
- 11. WPF取消选择带复选框的复选框 - 复选框组合框
- 12. C#WPF组合框与文本框作为作为组合框
- 13. 绑定WPF组合框的用户设置属性
- 14. WPF组合框不选择触发
- 15. 在WPF中的文本框中设置可访问的属性
- 16. 编程方式设置在WPF组合框选择的项目
- 17. 选择一个组合框项目XAML
- 18. 设置文本后更新WPF文本框属性
- 19. 在拉组合框中设置选择
- 20. 使用组合框进行选择VB
- 21. WPF组合框...如何设置.Text属性?
- 22. 带复选框的WPF组合框
- 23. 当从组合框中选择特定选项时自动隐藏文本框
- 24. 选择的组合框的文本
- 25. 选择所有组合框内的复选框Wpf中的组合框项目
- 26. 当IsEnabled发生变化时,WPF组合框文本转换器
- 27. 选择组合框的文本
- 28. 带有复选框的Wpf组合框
- 29. 多选组合框设置选定属性True
- 30. WPF XAML绑定的文本框的属性不能清除
这个问题是相似的:http://stackoverflow.com/questions/2561820/wpf-visibility-of-基于元素的组合选择 – 2012-05-07 11:33:04