我有一个名为gridExtra
的{{1}}类型的属性。
我使用MVVMlight,因此我在setter中使用了List<String>
SuggestionFirstName
如果我这样做
Set()
为什么第二条指令不会触发属性的 public ObservableCollection<string> SuggestionFirstName
{
get { return _suggestionsFirstName; }
set { Set(ref _suggestionsFirstName, value); }
}
方法?
答案 0 :(得分:1)
SuggestionLastName是某个对象的属性,它在此行中设置:
SuggestionLastName = new List<String>();
请参阅,它会创建一个新列表,然后设置该属性以记住该列表。
然后,这一行:
SuggestionLastName.Add("hello");
执行相反的操作:读取该属性以保留该列表,然后将该项直接添加到刚刚从属性中读取的相同列表 。没有&#34;设置属性&#34;发生。读取属性,然后列表内容正在更改。列表没有改变。
答案 1 :(得分:0)
它不会触发,因为您没有为属性 SuggestionLastName
设置任何内容
实际发生的是您从属性(列表)获取值,然后向其中添加项目:
var list = SuggestionLastName; // getter triggered
lits.Add("hello");
看,没有设置任何东西:)