编辑方法 WPF |动态参数

Edit Method WPF | Dynamic Parameters

情况

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

基本上,我的主 class 中有一个成员列表,我遍历该成员列表并找到具有匹配用户名参数的成员,这有效。

然后,一旦在系统中找到该用户名(因为会员需要使用有效的用户名登录),我想设置会员。"Whatever" paramater 为用户选择的任何参数使用用户为该参数输入的新内容在 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",因为用户可以编辑的参数太多了,而且是冗长的"bad"代码。

如何在一行代码中完成此操作?因为 bm.[parameter] = newEntry; 行不通?

更多信息

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

您需要使用Reflection:

      foreach (BaseMember bm in members)
        {

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

                PropertyInfo prop = type.GetProperty(parameter);

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

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