我会尝试解释现状:
我有一个WPF应用程序,我使用MVVM模式。所以代码分为至少三个“层”。现在,GUI由放置在外部XML文件中的可定制定义动态构建。因此,例如,在该XML文件中定义网格的每一行及其含义和布局。它应该从列中读取数据源中的表。 顺便说一句,该数据源是使用Entity Framework在我的应用程序中实现的。
现在,我无法找到一种从实体动态选择属性的方法。例如:
Binding bnd = new Binding();
bnd.Source = from i in DataModel.Entities.machine
where i.name == Properties.Settings.Default.CurrentMachine
select i.<<THE COLUMN DEFINED IN THE XML>>
所以我正在寻找一种方法将字符串(取自XML)转换为实体的实际属性。
可以这样做吗?如果是这样,究竟是怎么回事?
非常感谢!
答案 0 :(得分:0)
尝试使用reflection和GetProperty()方法。
public Binding ReflectionBinder(string propertyName)
{
var binding = new Binding();
var src = (from i in DataModel.Entities.machine
where i.name == Properties.Settings.Default.CurrentMachine
select i);
binding.Source = src.GetType().GetProperty(propertyName).GetValue(src, null);
return binding;
}