0

コントロール名、コントロールAssemblyQualifiedName、プロパティ名、プロパティ値の文字列を使用してコントロールのプロパティを変更しようとしています


私が試したこと:

public void ChangeIt(string ctrlName, string typ,
                     string prop, string value)
{
    Type t = Type.GetType(typ);
    dynamic obj = Convert.ChangeType(App.Current.MainWindow.FindName(ctrlName), t);
    // Now how to
    // obj.Prop=value;
}

ChangeIt("Label1",
        "System.Windows.Controls.Label, PresentationFramework, Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35",
        "Content", "Hellow World!");

ありがとうございました

4

1 に答える 1

1

タイプはまったく必要ありません。また、動的を使用する必要もありません。

public void ChangeIt(string ctrlName, string typ, string prop, string value) {
     object obj = App.Current.MainWindow.FindName(ctrlName);
     obj.GetType().GetProperty(prop).SetValue(obj, value);
}
于 2012-07-22T05:22:29.003 に答える