XAML TextBox isReadOnly Binding

本文关键字:Binding isReadOnly TextBox XAML | 更新日期: 2023-09-27 18:18:11

我试图在Windows 8.1应用程序中使用绑定使文本框只读。我已经尝试了一些代码从互联网上不工作。你能建议一些最简单的方法吗?我对绑定这个概念很陌生。

XAML

<TextBox x:Name="tbOne"  IsReadOnly="{Binding Path=setread, Mode=OneWay}" />
<Button Content="isReadonlyBinding" x:Name="isReadonlyBinding" Click="isReadonlyBinding_Click"></Button>

XAML.CS

public static readonly DependencyProperty IsReadOnlyProperty = DependencyProperty.Register(
    "setread",
    typeof(bool),
    typeof(MainPage),
    new PropertyMetadata(false)
    );
public bool setread
{
    get { return (bool)GetValue(IsReadOnlyProperty); }
    set { SetValue(IsReadOnlyProperty, value); }
}
private void isReadonlyBinding_Click(object sender, RoutedEventArgs e)
{
    setread = true;
}

XAML TextBox isReadOnly Binding

试试这个

<page X:name="PageName">
IsReadOnly="{Binding ElementName=PageName,Path=setread, Mode=OneWay}"

在你的代码后面实现INotifyPropertyChanged。然后按如下方式修改属性:

private bool _setread;
public bool Setread
{
    get { return _setread; }
    set { 
      if(_seatread == value) return; 
      _setread = value;
      RaisePropertyChanged("Setread"); 
    }
}

给根元素命名,如x:Name="root",用ElementName=page绑定Setread。注意,最好准备一个视图模型。视图模型代码隐藏只是一个快速的解决方法。