PostSharp NotifyPropertyChanged属性不适用于自定义的setter

时间:2015-05-21 07:35:41

标签: c# wpf inotifypropertychanged postsharp

您好我已经尝试了几周的PostSharp Express。 NotifyPropertyChanged属性适用于默认的getter和setter,但是一旦我自定义了我的setter,虽然我看到更改的值出现在调试模式下,但屏幕上没有数据刷新。这是我的样本模型类:

[NotifyPropertyChanged]
public class Question
{
    public string QuestionCode { get; set; }

    private string _answer;

    public string Answer
    {
        get { return _answer; }
        set
        {
            if (_answer == value) return;
            _answer = value;
            if (!String.IsNullOrEmpty(_answer) && _answer.ToLower().Equals("no"))
                IsNoChecked = true;
            else if (!String.IsNullOrEmpty(_answer) && _answer.ToLower().Equals("yes"))
                IsYesChecked = true;
            else if (!String.IsNullOrEmpty(_answer) && _answer.ToLower().Equals("n/a"))
                IsNotApplicableChecked = true;

        }
    }
}

绑定适用于属性 QuestionCode 属性。

但是,当我更改答案属性时,在ViewModel中,仅在第一个场合触发更改,除此之外不会传播更改。我已经设置了

UpdateSourceTrigger=PropertyChanged, Mode=TwoWay 

我的控件的属性。

更新:我将上面的类用作另一个类中的列表,如下所示:

[NotifyPropertyChanged]
public class Category
{
    public string CategoryName { get; set; }
    public List<Question> Questions { get; set; }
    public string SubCategory { get; set; }
}

不幸的是,我被迫仅为此属性实现传统的INotifyPropertyChangedEvent事件。 PostSharp不支持开箱即用的这种行为吗?或者我在这里遗失了什么?请帮助。

0 个答案:

没有答案