我需要有人來確認我所看到的,因爲這個問題,我可能會改變應用程序的領域。問題是,當針對彼此繼承的接口進行數據綁定時,您無法看到基礎接口上的屬性。Winforms與接口繼承的數據綁定
我正在使用數據綁定的WinForms應用程序。這是在.net3.5中,不,我不能使用wpf。
總之,我有一個這樣的設置。
public interface IClassOne
{
string Prop1 { get; set; }
}
public interface IClassTwo : IClassOne
{
string Prop2 { get; set; }
}
public abstract class ClassOne : IClassOne
{
public string Prop1 { get; set; }
}
public class ClassTwo : ClassOne, IClassTwo
{
public string Prop2 { get; set; }
}
基類將擁有公共屬性和邏輯。基本接口將具有這些公共屬性,因此它們必須在每個具體實現上實現。
如果我是上面的數據綁定到我的類結構,我會綁定到IClassTwo。問題是當我綁定到IClassTwo時,我無法在WinForms的任何設計器操作中看到Prop1。即使我解決了這個限制並獲得了與Prop1綁定的控制權,但它不起作用。
但是,如果我綁定兩個ClassTwo,那麼數據綁定的作品。
我不想處理具體的類,因爲這會使用模擬和測試太難。我也不想把所有東西放在IClassTwo上,因爲當我做出另一個具體的實現時,我將不得不重複代碼。
我需要知道的是,如果這真的不起作用。如果你知道爲什麼,那將是一個獎金。
謝謝 託尼
該帖子給出的更真實的原因是繼承接口被視爲「明確實施」。這可能更多的是接口支持多繼承,但類不支持。活頁夾願意爲類進行繼承,因爲單一繼承在決定要選擇的基類時消除了任何不明確的地方,但是對於接口來說類似的行爲需要解析重疊的屬性名。 – binki 2017-03-14 21:37:25