Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态选择实体属性?_C#_Wpf_Entity Framework_Data Binding - Fatal编程技术网

C# 动态选择实体属性?

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

我将尽力解释目前的情况:

我有一个使用MVVM模式的WPF应用程序。因此,代码至少分为三个“层”。现在,GUI是通过放置在外部XML文件中的可自定义定义动态构建的。例如,在XML文件中,定义了网格的每一行及其含义和布局。以及从数据源中的表中读取的列。 顺便说一下,该数据源是在我的应用程序中使用实体框架实现的

现在,我无法找到从实体中动态选择属性的方法。例如:

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;
    }