我有一个需要通过编程启用/禁用的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属性也被绑定了;它是完全可用的,这使我认为这不是数据上下文的问题。
然而,当我调用这段代码时:
private Boolean _textbox_enabled;
public Boolean Textbox_Enabled
{
get { return _textbox_enabled; }
set
{
OnPropertyChanged("TextBoxEnabled");
}
}
它不起作用。为了提供进一步的信息,这个方法会改变TextBox_Enabled属性:
public void DisabledTextBox()
{
this.Textbox_Enabled = false;
}
当按下键盘组合键时,会调用该函数。
nameof()
。例如,如果你的代码行是OnPropertyChanged(nameof(TextboxEnabled))
,IDE会为你指出错误,因为没有这样的属性存在。而且,当你使用重命名功能更改属性名称时,它会自动更新。 - Ethan Maness