您好我已经尝试了几周的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不支持开箱即用的这种行为吗?或者我在这里遗失了什么?请帮助。