2010-10-17 64 views
5

假設我有一個ViewModel TabViewModel,它擴展了ObservableObject MVVM Foundation Framework中ViewModels的類。然後我還有一個EditorTabViewModel,它擴展了TabViewModel,現在我需要擴展DependencyObject來實現DependencyProperties。我不能超過1班。我該如何實現這一點?我可以有一個「中級」類...C#:從一個以上的類擴展

TabViewModel : ObservableObject 

EditorTabViewModel : TabViewModel 

DependentEditorTabViewModel : DependencyObject 

但這就是1多餘的不必要的類。任何更好的方式來做到這一點?實際上

UPDATE

行動我不能做以上。 DependentEditorTabViewModel仍然需要擴展EditorTabViewModel ...除了DependencyObject

回答

1

它不是一個額外的類,如果你正在完成你所需要的。這裏是你將如何去做的:

DependentEditorTabViewModel : DependencyObject 

TabViewModel : DependentEditorTabViewModel 
+0

我想我犯了一個類似的錯誤......除了'DependencyObject',我仍然需要擴展'ObservableObject'。換句話說,我需要生成的類主要擴展'DependencyObject','ObservableObject'。 – 2010-10-17 03:34:52

+0

好的。不幸的是,c#不支持多重繼承。研究一下實現一個接口。 – 2010-10-17 03:38:16

2

C#不支持Multiple Inheritance。你最好的選擇是使用接口,而不是父類。

即使您沒有使用接口的選項(也許您無權訪問該代碼),通常更適合prefer composition over inheritance。你真的需要繼承這兩個類,或者你可以組成與他們呢?

+0

在我上面的場景中,我怎麼能實現組合繼承?我閱讀了關於b4的內容,但在這種情況下,也許我的思維並不好:) – 2010-10-17 03:47:29

+0

@jiewmeng:恐怕我對MVVM基礎架構沒有任何瞭解,所以我無法理解這些細節。抱歉。 – 2010-10-17 04:35:31

相關問題