【问题标题】:How to fire RaisePropertyChanged from within a setter如何从 setter 中触发 RaisePropertyChanged
【发布时间】:2023-04-02 17:55:01
【问题描述】:

我有一个没有明确提及支持字段的属性定义如下:

//How to fire RaisePropertyChanged("Name") from setter
public string Name { get; set; } 

究竟如何在该属性的设置器中触发 RaisePropertyChanged 事件? 当有一个私有的支持字段并且有一个封装它的公共属性时,我知道该怎么做。

在这种情况下是否允许使用多行设置器?

【问题讨论】:

标签: c# mvvm


【解决方案1】:

不,您不能使用自动属性执行此操作。您需要有一个支持字段并自己定义 getter 和 setter,并按照您的描述在 setter 中引发事件。

【讨论】:

  • +1 因为它是真实的,没有很多技巧。你可以通过反射来做到这一点......
  • @MichaC 不仅仅是反射,还有代码发射,不是吗?我假设 OP 不想去那里;)但如果是这样,我确实有这方面的经验..!
【解决方案2】:

这是一个自动属性,你需要有一个支持字段。

private string _name;
public string Name
{
    get { return name; }
    set 
    { 
        name = value; 
        RaisePropertyChanged("Name"); 
    }
}

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 2017-03-25
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多