C# 动态选择实体属性?
我将尽力解释目前的情况: 我有一个使用MVVM模式的WPF应用程序。因此,代码至少分为三个“层”。现在,GUI是通过放置在外部XML文件中的可自定义定义动态构建的。例如,在XML文件中,定义了网格的每一行及其含义和布局。以及从数据源中的表中读取的列。 顺便说一下,该数据源是在我的应用程序中使用实体框架实现的 现在,我无法找到从实体中动态选择属性的方法。例如:C# 动态选择实体属性?,c#,wpf,entity-framework,data-binding,C#,Wpf,Entity Framework,Data Binding,我将尽力解释目前的情况: 我有一个使用MVVM模式的WPF应用程序。因此,代码至少分为三个“层”。现在,GUI是通过放置在外部XML文件中的可自定义定义动态构建的。例如,在XML文件中,定义了网格的每一行及其含义和布局。以及从数据源中的表中读取的列。 顺便说一下,该数据源是在我的应用程序中使用实体框架实现的 现在,我无法找到从实体中动态选择属性的方法。例如: Binding bnd = new Binding(); bnd.Source = from i in DataModel.Entitie
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>>
Binding bnd=新绑定();
bnd.Source=来自DataModel.Entities.machine中的i
其中i.name==Properties.Settings.Default.CurrentMachine
选择i。
因此,我正在寻找一种将字符串(取自XML)转换为实体的实际属性的方法
这能做到吗?如果是,具体情况如何
非常感谢 尝试使用和GetProperty()方法
你为什么要这么做?我不明白为什么人们把一切都搞得如此复杂。。。如果您需要定义用户界面并使用XML在运行时加载它。。为什么不动态加载XAML??然后,您可以在外部文件中定义任何绑定,并在运行时加载它。您可能正在查看动态生成表达式树。。。
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;
}