В VB.NET я создал 2 сокращенные функции для привязки данных / видов выпадающих списков / из любого источника данных (например, DataReader или IReader или коллекции и т. Д.):
Public Shared Sub BindObject(ByVal objDataSource As Object, ByVal objItem As Object)
objItem.DataSource = objDataSource
objItem.DataBind()
End Sub
Public Shared Sub BindObject(ByVal objDataSource As Object, ByVal objItem As Object, ByVal sTextField As String, ByVal sValueField As String)
objItem.DataSource = objDataSource
If sTextField <> "" Then objItem.DataTextField = sTextField
If sValueField <> "" Then objItem.DataValueField = sValueField
objItem.DataBind()
End Sub
Я преобразовал это в C #как таковой:
public static void BindObject(object objDataSource, object objItem)
{
objItem.DataSource = objDataSource;
objItem.DataBind();
}
public static void BindObject(object objDataSource, object objItem, string sTextField, string sValueField)
{
objItem.DataSource = objDataSource;
if (!string.IsNullOrEmpty(sTextField))
objItem.DataTextField = sTextField;
if (!string.IsNullOrEmpty(sValueField))
objItem.DataValueField = sValueField;
objItem.DataBind();
}
Тем не менее, это, очевидно, не работает, так как методы привязки данных недоступны для objItem , если я не приведу явное приведение к типу, например "ListBox"."или" Gridview "и т. д. Точно так же я хочу сохранить гибкость, благодаря которой objDataSource может быть либо IReader, iCollection и т. д.
Можно ли реплицировать подход VB.NET вC # используя анонимные методы или что-то подобное?
Спасибо.