命名約定意味着(通常)屬性是名詞,方法是動詞。現在,我知道這些是指南,而不是規則,但是,如果可以,最好遵循指南。屬性調用方法或啓動事件是否「錯誤」
這意味着,以下
Person.Name = "Dave";
應該只設置Name屬性。我不希望該屬性看起來像
public string Name
{
set
{
UpdateDatabase(value);
}
}
我的問題幾乎正是上面的例子,但與DependencyProperties。
我的應用程序有一個用戶控件,它看起來像
<uc:MyControl MyControlMyValue="{Binding RelativeSource={RelativeSource AncestorType=userControls:MyOtherControl}, Path=MyValue, Mode=OneWayToSource}" />
所以,你可以在上面看到,當MyControlMyValue屬性更新,它更新myvalue的財產。我遇到的問題是當這個屬性更新時,我需要它執行比簡單綁定更多的邏輯!
目前,我投票給忽略了指導,貫徹落實類似
private double _myValue;
public double MyValue
{
get { return __myValue; }
set
{
if (value == __myValue)
return;
__myValue= value;
LookAtMeHiddenAway();
OnPropertyChanged("MyValue");
}
}
是否有更好的方法,因爲它不會覺得很我錯了?
閱讀財產應該很快。但是寫它呢?你在那裏舉辦一個活動,所以當你設置它時,任意代碼都可以運行。無論如何,如果是這種情況,什麼阻止你調用一個方法? –
是@Kris,你是對的,但這個意思是由微軟設計的,出於某種原因,我覺得這是唯一的例外規則......我還是這個世界的新手(編程),所以這些指南對於我。 – Dave
僅供參考,更新綁定時,不會調用類中的DependencyProperty setter/getters。綁定系統在低層次上處理這個問題,所以你希望在你的setter/getters中運行的任何代碼都不會被調用。 – Will