MVVM 中的属性绑定

发布于 2024-12-07 21:23:16 字数 401 浏览 0 评论 0原文

我在 ModelView 中的 cpde:

 public Boolean EnableTextBox { get; set; }

 public CustomerAccountVM()
 {

     this.EnableTextBox = false;

      //...
 }

视图中的代码: XAML:

   <TextBox Text="{Binding Path=IdCustomer, Mode=Default}" IsEnabled="{Binding Path=EnableTextBox,Mode=Default}" />

为什么代码不起作用?

没有答案?

my cpde in ModelView :

 public Boolean EnableTextBox { get; set; }

 public CustomerAccountVM()
 {

     this.EnableTextBox = false;

      //...
 }

code in View:
XAML :

   <TextBox Text="{Binding Path=IdCustomer, Mode=Default}" IsEnabled="{Binding Path=EnableTextBox,Mode=Default}" />

Why the code does not work?

no answer ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心病无药医 2024-12-14 21:23:16

您没有发布启用属性已更新的事实。

您需要实现 INotifyPropertyChanged 接口并将您的属性更改为:

private Boolean _enableTextBox;
public Boolean EnableTextBox
{
    get { return _enableTextBox; }
    set
    {
        _enableTextBox = value;
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }
 }

您应该将 PropertyChanged 代码包装在一个方法中,这样您就不会重复自己。

You're not publishing the fact that the Enable property has been updated.

You need to implement the INotifyPropertyChanged interface and change your property to be:

private Boolean _enableTextBox;
public Boolean EnableTextBox
{
    get { return _enableTextBox; }
    set
    {
        _enableTextBox = value;
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }
 }

You should wrap the PropertyChanged code in a method so you're not repeating yourself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文