繁体   English   中英

在WPF中将IsEnabled属性绑定到布尔值

[英]Bind IsEnabled property to Boolean in WPF

我有一个TextBox ,需要以编程方式启用/禁用。 我想通过绑定到Boolean来实现这一点。 这是TextBox XAML:

<TextBox Height="424" HorizontalAlignment="Left" 
                 Margin="179,57,0,0" Name="textBox2" 
                 VerticalAlignment="Top" Width="777"
                 TextWrapping="WrapWithOverflow" 
                 ScrollViewer.CanContentScroll="True" 
                 ScrollViewer.VerticalScrollBarVisibility="Auto" 
                 AcceptsReturn="True" AcceptsTab="True" 
                 Text="{Binding Path=Text, UpdateSourceTrigger=PropertyChanged}"
                 IsEnabled="{Binding Path=TextBoxEnabled}"/>

注意,Text属性也已绑定。 它功能齐全,这使我认为这不是DataContext问题。

但是,当我调用此代码时:

private Boolean _textbox_enabled;
public Boolean Textbox_Enabled
{
    get { return _textbox_enabled; }
    set
    {
        OnPropertyChanged("TextBoxEnabled");
    }
}

这是行不通的。 若要提供更多信息,可通过以下方法更改TextBox_Enabled属性:

public void DisabledTextBox()
{
     this.Textbox_Enabled = false;
}

..,当按下组合键时调用。

这是您的小错别字!

    private Boolean _textbox_enabled;
    public Boolean TextboxEnabled // here, underscore typo
    {
        get { return _textbox_enabled; }
        set
        {
            _textbox_enabled = value; // You miss this line, could be ok to do an equality check here to. :)
            OnPropertyChanged("TextboxEnabled"); // 
        }
    }

xaml将文本更新为vm / datacontext的另一件事

Text="{Binding Path=Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding TextBoxEnabled}"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM