Я связал ASP.net GridView с коллекцией анонимных типов.
Как я могу ссылаться на одно из свойств анонимных типов в обработчике событий RowDataBound?
Мне уже известен способ приведения анонимного типа следующим образом:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var AnonObj = Cast(e.Row.DataItem,
new { StringProperty = "", BoolProperty = false, IntProperty = 0 });
if (AnonObj.BoolProperty)
{
e.Row.Style.Add(HtmlTextWriterStyle.Color, "Red");
}
}
}
T Cast<T>(object obj, T type)
{
return (T)obj;
}
Я думаю, что большинство скажет, что это грязно, хотя и работает. В моем реальном коде у меня более 3 свойств, и мне придется обновлять код в двух местах каждый раз, когда я добавляю или изменяю порядок свойств моего анонимного типа.
Есть ли лучший способ сообщить e.Row.DataItem, что он обладает определенным свойством определенного типа, и заставить объект присвоить мне это значение (помимо создания класса)?