编辑方法WPF |动态参数

时间:2015-05-08 21:04:40

标签: c# wpf parameters

场合

我试图为我的WPF应用程序创建一个编辑成员方法。

基本上,我在我的主类中有一个成员列表,我遍历该成员列表并找到具有匹配的Username参数的成员,这是有效的。

然后,一旦在系统中找到了该用户名(因为该成员需要使用有效的用户登录),我想设置该成员。" Whatever"用户选择在gui上编辑的任何参数的参数,以及用户为该参数输入的新内容。

public void editMember(string Username, string parameter, string newEntry)
        {



            foreach (BaseMember bm in members)
            {

                if (Username == bm.username)
                {
                    bm.[parameter] = newEntry;
                }
            }

问题

我不想这样做:

" member.club"和" member.firstname",或者" member.street",因为用户可以编辑的参数太多,并且它已经啰嗦&#34坏的#34;代码。

如何在一行代码中执行此操作?因为bm.[parameter] = newEntry;无法工作?

更多信息

如果我使用静态参数,例如bm.memclub = newEntry;,但我希望参数是动态的,则此方法有效。

1 个答案:

答案 0 :(得分:1)

您需要使用Reflection

      foreach (BaseMember bm in members)
        {

            if (Username == bm.username)
            {  
                Type type = bm.GetType();

                PropertyInfo prop = type.GetProperty(parameter);

                prop.SetValue (bm, newValue, null);
            }
        }

Reflection提供描述当前对象的对象(类型为Type)。您可以使用反射来动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。