gpt4 book ai didi

.net - DataTrigger 使 WPF 按钮处于非事件状态,直到 TextBox 具有值

转载 作者:行者123 更新时间:2023-12-03 02:45:57 25 4
gpt4 key购买 nike

我希望 Button 控件的属性为 IsEnabled="False",直到在 中的 TextBox 中输入值为止窗口

到目前为止的代码:

<Button
Content="Click Me"
Name="ClickMe"
VerticalAlignment="Top"
Click="ClickMe_Click">
<Button.Style>
<Style>
<Style.Triggers>
<DataTrigger
Binding="{Binding ElementName=textBox, Path=Length}"
<!-- or even: Binding="{Binding Path=textBox.Length}" -->
Value="0">
<Setter
Property="Button.IsEnabled"
Value="false" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>

此外,是否可以让此 Button 控件的 IsEnabled 属性基于 3 个不同的 TextBox 控件,并且都具有值?

最佳答案

假设您正在使用表示模型(例如 ViewModel),您应该直接绑定(bind)数据而不是 UI 元素。

<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding FirstName}" Value="{x:Null}" />
<Condition Binding="{Binding MiddleName}" Value="{x:Null}" />
<Condition Binding="{Binding LastName}" Value="{x:Null}" />
</MultiDataTrigger.Conditions>
<Setter Property="Button.IsEnabled" Value="False" />
</MultiDataTrigger>
</Style.Triggers>

也就是说,如果您使用的是演示模型,则可以随时添加 bool “EnableSave”属性并处理所有表示逻辑,而不是在 View 本身中。

更新

从评论中可以看出,我错误地将其设置为启用 Button任何 TextBox有一个值,但要求是Button全部TextBox时启用es 有值。

从概念上讲,您所要做的就是反转条件 - 我们想要的是“如果所有条件都为真,则为真”,而不是“如果所有条件都为假,则为假”。

问题是,没有办法在 XAML 中说“not null”——没有 IValueConverter 就不可能。 , 那是。我会创建一个 NullToBoolConverter返回 false对于 nulltrue对于 != null .

给定这样一个转换器:

<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding FirstName,
Converter={StaticResource NullToBoolConverter}}" Value="True" />
<Condition Binding="{Binding MiddleName,
Converter={StaticResource NullToBoolConverter}}" Value="True" />
<Condition Binding="{Binding LastName,
Converter={StaticResource NullToBoolConverter}}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Button.IsEnabled" Value="True" />
</MultiDataTrigger>
</Style.Triggers>

关于.net - DataTrigger 使 WPF 按钮处于非事件状态,直到 TextBox 具有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662349/

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