У меня сейчас есть пользовательский элемент управления
class MyControl : CompositeControl {
Foo Entity { get; set; }
string PropertyName { get; set;}
//...
protected override void OnLoad(EventArgs e)
{
var v = typeof(Foo).GetProperty(PropertyName).GetValue(Entity);
//...
var _ = Entity.OtherProperty;
//...
}
}
//and a class
class Foo {
string Bar { get ;set; }
string OtherProperty { get; set; }
}
На странице я могу использовать этот элемент управления как
<MyControl id="myControl" Entity="<%# MyEntity %>" PropertyName="Bar"></MyControl>
где конечно MyEntity является защищенным свойством на странице
protected Foo MyEntity { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack) return;
MyEntity = new Foo { Bar = "Hello World" OtherProperty="..." };
}
То, что я хотел бы сделать, это использовать как
<MyControl id="myControl" Property="<%# MyEntity.Bar %>" ></MyControl>
Но, таким образом, MyControl все еще осознает и сущность (объект Foo), и PropertyName ("Bar").
Я все еще должен быть в состоянии управлять
var v = typeof(Foo).GetProperty(PropertyName).GetValue(Entity);
//...
var _ = Entity.OtherProperty;
или аналогичный.