私があなたの質問を正しく理解していれば、これはリフレクションの助けを借りて行うことができます...
using System.Reflection;
cs ファイルの先頭に a: を追加することから始めます。
WPF を使用しているか、Winforms を使用しているかがわからないため、ここに 2 つの例を示します...
WPF:
このバージョンの SetParam を使用できます。
private void SetParam(string name, string property, dynamic value)
{
// Find the object based on it's name
object target = this.FindName(name);
if (target != null)
{
// Find the correct property
Type type = target.GetType();
PropertyInfo prop = type.GetProperty(property);
// Change the value of the property
prop.SetValue(target, value);
}
}
使用法:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SetParam("textbox", "Text", "Hello");
Wheretextbox
は次のように宣言されています。
<TextBox x:Name="textbox" />
Winforms の場合は、SetParam を次のように変更します。
private void SetParam(string name, string property, dynamic value)
{
// Find the object based on it's name
object target = this.Controls.Cast<Control>().FirstOrDefault(c => c.Name == name);
if (target != null)
{
// Find the correct property
Type type = target.GetType();
PropertyInfo prop = type.GetProperty(property);
// Change the value of the property
prop.SetValue(target, value);
}
}