wpf 绑定到TextBox ReadOnly变量

c2e8gylq  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(147)

我有一个带有ReadOnly变量的类

public class Consultant
    {
        private string surname;
        public string Surname
        {
            get { return surname; }
        }
    }

要绑定到文本框

<StackPanel DataContext="{Binding ElementName=LB, Path=SelectedItem}">
      <TextBox x:Name="TBSurname" Text="{Binding Path=Surname}"/>
</StackPanel>

我选择项目时出错。文本框不绑定到只读变量
我可以改变textbox到textblock,但后来我需要添加继承另一个类谁可以改变姓氏,所以我需要绑定只读变量到textbox,或其他可能纠正我的问题
我只是在学习,可能有不懂的地方,请帮忙

wi3ka0sx

wi3ka0sx1#

您的类Consultant需要正确设置以进行数据绑定。您应该实现INotifyPropertyChanged类,以便UI知道属性以及该属性的值。试试这样的方法:

public class Consultant : INotifyPropertyChanged
{
  private string surname;
  public event PropertyChangedEventHandler PropertyChanged;
  public string Surname
  {
      get { return surname; }
      set 
      {
          surname = value;
          OnPropertyChanged(nameof(Surname));
      }
  }

  private void OnPropertyChanged(string prop)
  {
      PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
  }
}

Microsoft docs也有关于此实现的更多信息:https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/how-to-implement-property-change-notification?view=netframeworkdesktop-4.8

相关问题