خوب شما می تونین یه کار دیگه بکنین : اون پروپرتی بالا که من از نوع DataTable در نظر گرفته ام رو شما object در نظر بگیر. این طوری مشکل شما حل میشه.
public class DataSourceForm:System.Windows.Form
{
private object dt;
public object DataSource
{
get{return dt;}
set{dt=value;}
}
}
در ضمن می تونین با کیورد is نوع object رو هم در بیارین. البته نیاز به type Casting هم احتمالا نداشته باشین چون پروپرتی DataSource برای DataGrid خودش object هست و typeCasting رو خودش انجام میده اگه جواب نداد خودت زحمت typeCasting رو بکش :
if(value is DataTable)
{
DataGrid1.DataSource=value as DataTable;
}
else if(value is DataSet)
{
DataGrid1.DataSource=value as DataSet;
}
این دوتا رو امتحان کن حتما جواب میده. موفق باشین.