Обобщенный интерфейс для DataSource и DataBind
От: Аноним  
Дата: 01.09.09 16:06
Оценка: :)
Необходимо создать некоторый метод для инициализации всех объектов обладающими свойствами DataSource и методом DataBind()
например это GridView, Repeater, ListView, DropDownList и пр. контролы.
Но к сожалению данная часть DataBinding не вынесена в отдельный обший класс и например для DataGridView реализованны в самом классе.

Попробовал сделать следующим образом

public interface IDataBinding
{
  object DataSource { get; set; }
  void DataBind();
}


public void InitDataSource(  IDataBindingObject obj )
{

   obj.DataSource = ....
   obj.DataBind()


}

public void Form_Load( .. )
{

  InitDataSource( dataGridView1 as IDataBinding )
}

приведение к IDataBinding не ругается, эксепшенов не кидает но внутри процедуры InitDataSource оbj = null, хотя на входе dataGridView1 не null.

Собственно вопрос как правильно описать такой вот обобщенный метод для инициализации объектов имеющих интерфейс IDataBinding.
Re: Обобщенный интерфейс для DataSource и DataBind
От: TS_Rus Россия http://gendix.ru
Дата: 01.09.09 16:25
Оценка:
Здравствуйте, Аноним, Вы писали:


Это:
А>Собственно вопрос как правильно описать такой вот обобщенный метод для инициализации объектов имеющих интерфейс IDataBinding.

и это:
А>Но к сожалению данная часть DataBinding не вынесена в отдельный обший класс и например для DataGridView реализованны в самом классе.

— разные вопросы. Класс, который не наследуется от вашего интерфейса, а таковы все перечисленные стд классы, будут давать null в этой операции as. Единственный путь их «опознать» — через Reflection, к сожалению.
Задай вопрос и получи ответ в реальном времени по ICQ/Skype &c. Регистрация в темах: «Программирование», «Интернет», «Компьютеры»: [a]http://asklive.ru/ThemeSubscribeForm.aspx?attachGroups=963-962-961">[a]
Re: Обобщенный интерфейс для DataSource и DataBind
От: cvetkov  
Дата: 01.09.09 16:46
Оценка:
в дотнете если что-то выглядит как утка, ходит как утка и крякакет как утка, то это не обязательно утка

DuckTyping'а нету. значит нужно явно заимплиментить интерфейсы.
либо отнаследоваться от стандартных классов, либо обернуть их
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
Re[2]: Обобщенный интерфейс для DataSource и DataBind
От: _FRED_ Черногория
Дата: 02.09.09 10:22
Оценка:
Здравствуйте, cvetkov, Вы писали:

C>в дотнете если что-то выглядит как утка, ходит как утка и крякакет как утка, то это не обязательно утка


C>DuckTyping'а нету. значит нужно явно заимплиментить интерфейсы.


В "дотнете" как раз дак-тайпинг есть, например в VB. В шарпе будет в четвёртой версии языка.
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Обобщенный интерфейс для DataSource и DataBind
От: Dog  
Дата: 02.09.09 12:01
Оценка:
C>>в дотнете если что-то выглядит как утка, ходит как утка и крякакет как утка, то это не обязательно утка
C>>DuckTyping'а нету. значит нужно явно заимплиментить интерфейсы.
_FR>В "дотнете" как раз дак-тайпинг есть, например в VB. В шарпе будет в четвёртой версии языка.
Есть в BLToolkit здесь
Re[3]: Обобщенный интерфейс для DataSource и DataBind
От: cvetkov  
Дата: 02.09.09 13:31
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>В "дотнете" как раз дак-тайпинг есть, например в VB. В шарпе будет в четвёртой версии языка.


Да. я все время забываю про VB

а вот в шарпе это видеть не хотелось бы.
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.