wpf – 将Button的可见性绑定到两个文本框的内容的最简洁方法

wpf – 将Button的可见性绑定到两个文本框的内容的最简洁方法,第1张

概述我的应用程序中有一个Button,其“启用”我已经绑定TextBox是否为空,如下所示: <Button Content="Go" IsEnabled="{Binding Text, Converter={StaticResource EnableIfStringNotEmptyDataSource}, 我的应用程序中有一个button,其“启用”我已经绑定TextBox是否为空,如下所示:

<button Content="Go"         IsEnabled="{Binding Text,Converter={StaticResource EnableIfStringNotEmptyDataSource},Elementname=MyTextBox}"/>@H_419_12@  

(为简洁起见,省略了EnableIfStringNotEmptyDataSource的实现).

当TextBox的文本发生更改时,这会自动更改状态.

以同样的方式将属性绑定到两个文本框是否为空的最优雅的方法是什么?

解决方法 编辑:对于silverlight来说,这可能是最干净的:

<TextBox Text="{Binding TB1Text,Mode=TwoWay}" /><TextBox Text="{Binding TB2Text,Mode=TwoWay}"/><button Content="Lorem Ipsum" IsEnabled="{Binding buttonIsEnabled}"/>@H_419_12@  
private string _TB1Text;public string TB1Text{    get { return _TB1Text; }    set    {        if (_TB1Text != value)        {            _TB1Text = value;            PropertyChanged.Notify(() => this.TB1Text);            PropertyChanged.Notify(() => this.buttonIsEnabled);        }    }}private string _TB2Text;public string TB2Text{    get { return _TB2Text; }    set    {        if (_TB2Text != value)        {            _TB2Text = value;            PropertyChanged.Notify(() => this.TB2Text);            PropertyChanged.Notify(() => this.buttonIsEnabled);        }    }}public bool buttonIsEnabled{    get { return !(String.IsNullOrEmpty(TB1Text) && String.IsNullOrEmpty(TB2Text)); }}@H_419_12@  

(PropertyChanged.Notify只是一种扩展方法,可以在不需要传递字符串的情况下引发事件)

不会使用绑定而是使用multidatatrigger:

<TextBox name="tb1"/><TextBox name="tb2"/><button Content="Lorem Ipsum">    <button.Style>        <Style targettype="button">            <Style.Triggers>                <multidatatrigger>                    <multidatatrigger.Conditions>                        <Condition Binding="{Binding Text,Elementname=tb1}" Value="{x:Static sys:String.Empty}"/>                         <Condition Binding="{Binding Text,Elementname=tb2}" Value="{x:Static sys:String.Empty}"/>                     </multidatatrigger.Conditions>                    <Setter Property="IsEnabled" Value="False"/>                </multidatatrigger>            </Style.Triggers>        </Style>    </button.Style></button>@H_419_12@  

顺便说一句,你不需要一个TextBox案例的转换器:

<button Content="Lorem Ipsum" IsEnabled="{Binding Text.Length,Elementname=MyTextBox}"/>@H_419_12@                            	          总结       

以上是内存溢出为你收集整理的wpf – 将Button的可见性绑定到两个文本框的内容的最简洁方法全部内容,希望文章能够帮你解决wpf – 将Button的可见性绑定到两个文本框的内容的最简洁方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1006790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存