我有一個List<String>
類型的屬性,名爲SuggestionFirstName
。 我使用MVVMlight,所以我在二傳手爲什麼不List.Add()觸發Setter屬性?
public ObservableCollection<string> SuggestionFirstName
{
get { return _suggestionsFirstName; }
set { Set(ref _suggestionsFirstName, value); }
}
,如果我做
SuggestionLastName = new List<String>();
SuggestionLastName.Add("hello");
爲什麼不會在第二個指令觸發屬性的set{ }
方法使用Set()
?
感謝您的快速回答。那麼我有什麼辦法可以自己觸發嗎?我是否被迫使用ObservableCollection? –
@ArthurAttout:是的,如果您想要「收聽」集合內容的更改,則需要使用發出通知的集合。 ObservableCollection就是其中的一個例子。不,你沒有被迫使用它。您可以使用任何其他更改通知集合,您可以編寫自己的(不那麼難,真的),或者您可以基於事件以外的其他方式推出自己的更改檢測。有許多可能性,但實際上,ObservableCollection通常是最簡單/最快(並非最快)的引入您的現有代碼。 – quetzalcoatl