3

我将尝试按原样解释情况:

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

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

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)转换为实体的实际属性的方法。

这可以做到吗?如果是这样,具体如何?

非常感谢!

4

1 回答 1

0

尝试使用反射和 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;
    }
于 2012-11-12T23:03:58.037 回答