Friday, February 26, 2010

Programmer - Winforms databinding with interface inheritance

Programmer Question

I need someone to confirm what I am seeing before I may a change to the domain of the application because of this issue. The issue is that when databinding against interfaces that inherit from one another, you can not see the properties on the base interfaces.



I am working on a WinForms application that uses databinding. This is in .net3.5 and no I can not use wpf.



Anyways, I have a setup something like this.



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; }
}


The base class would hold common properties and logic. The base interface would have those common properties on it so they would have to be implemented on each concrete implementation.



If I was databinding to my class structure above, I would be binding to IClassTwo. The problem is when I databind to IClassTwo, I can not see Prop1 in any of the designer operations for WinForms. Even if I get around that limitation and get a control to be bound to Prop1, it does not work.



However if I bind two ClassTwo, then databinding works.



I do not want to deal with the concrete classes because that would make using mocks and testing too hard. I also do not want to put everything on IClassTwo because I would have to repeat code when I make another concrete implementation.



What I need to know is if this truly doesn't work. If you know why, that would be a bonus.



Thank you
Tony



Find the answer here

No comments:

Post a Comment

LinkWithin

Related Posts with Thumbnails