簡體   English   中英

從一個實現INotifyPropertyChanged的基類繼承

[英]Inheriting from one base class that implements INotifyPropertyChanged

我一直在使用以下幾個代碼來完成幾十個課程

public event PropertyChangedEventHandler PropertyChanged;

protected void NotifyPropertyChanged(string propertyName)
{
   if (PropertyChanged != null)
   {
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
   }
}

所有這些類都實現了INotifyPropertyChanged 為了使我的DRY警報靜音,最近我一直在重構這些類來繼承我的基類PropertyNotifier它的唯一目的是為從它繼承的類提供NotifyPropertyChanged - 這是我龐大項目中的幾十個ViewModel類。

它感覺很懶,有點臟。 我是在損害性能還是破壞了良好的設計實踐? 我認為如果改變通知應該很容易,那么WPF框架中就會有一個基類來執行我的PropertyNotifier類所做的事情。

請注意,由於很多原因,我的UI響應性一直存在性能問題 - 主要是由於大量控件。 所以我希望盡可能地減肥。 有任何想法嗎?

這是WPF或Silverlight開發中非常常見的基類,不會顯着影響性能。 我將PropertyNotifier作為基類的唯一問題是限制為單一繼承,但這對於您需要它的類的類型來說往往是一個罕見的問題。

是的,這是非常常見的做法。 對於大規模的應用程序,有必要擁有這種基類。 我們還為同樣的目的創建了一個BaseViewModel ; 我們還在這個基類中實現了許多公共代碼(跨ViewModels),如日志記錄,顯示錯誤消息,初始化WCF代理對象等。

另一個實現是WPF應用程序框架(WAF)Model類。 它完全一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM