Public Interface ISomething
WriteOnly Property Prop As IParent
End Interface
該接口聲明不滿足您的類實現。請考慮以下情況:
有一個叫IChild2另一個接口:
Public Interface IChild2
Inherits IParent
...
End Interface
根據ISomething
接口,你應該能夠實現IChild2
類的實例分配到Thing.Prop
,因爲它繼承了IParent
。但你不能,因爲Thing.Prop
屬性是IChild
類型和IChild2
不會繼承IChild
更新
什麼有關解決方案:
Class ThingBase
Implements ISomething
Public WriteOnly Property Prop As IParent Implements ISomething.Prop
Set(value As IParent)
End Set
End Property
End Class
Class Thing
Inherits ThingBase
Public Overloads WriteOnly Property Prop As IChild
Set(value As IChild)
MyBase.Prop = value
End Set
End Property
End Class
UPDATE2
Interface IView(Of T As IViewModel)
WriteOnly Property MyViewModel As T
End Interface
Class VerySpecialViewModel
Implements ISpecialViewModel
End Class
Class View
Implements IView(Of ISpecialViewModel)
Public WriteOnly Property MyViewModel As ISpecialViewModel Implements IView(Of ISpecialViewModel).MyViewModel
Set(value As ISpecialViewModel)
End Set
End Property
End Class
或
Class View
Implements IView(Of VerySpecialViewModel)
Public WriteOnly Property MyViewModel As VerySpecialViewModel Implements IView(Of VerySpecialViewModel).MyViewModel
Set(value As VerySpecialViewModel)
End Set
End Property
End Class
嗯......我明白了。圍繞它有一個優雅的解決方案嗎? – dotNET 2013-03-13 07:20:03
圍繞什麼?圍繞實現界面而不滿足其定義?不是真的。 – MarcinJuraszek 2013-03-13 07:21:13
這是MVVM。我基本上試圖在我所有的ViewModel上實現一個通用接口IParent。其中一些ViewModel更加專業化並實現了IChild。同樣,我的Views也實現了一個通用接口ISomething,它有一個指向底層ViewModel類的成員Prop。現在我不確定這個Prop是什麼類型的東西?我的想法是它是IParent類型的,所以所有視圖都可以實現它。 – dotNET 2013-03-13 07:28:29