【发布时间】:2020-06-25 10:05:09
【问题描述】:
下面是我正在尝试做的代码sn-p。
dynamic model = new ExpandoObject();
foreach (Control control in ConfigData.ActiveForm.Controls)
{
string controlType = control.GetType().ToString();
if (controlType == "System.Windows.Forms.TextBox")
{
TextBox txtBox = (TextBox)control;
if (string.IsNullOrEmpty(txtBox.Text))
{
MessageBox.Show(txtBox.Name + " Can not be empty");
return;
}
model[txtBox.Name] = txtBox.Text; // this gives error
}
}
这里我想创建一个属性,其值的名称来自 txtBox.name
例如,如果 textBox.name="mobileNo" 的值我想将名称为 mobileNo 的属性添加到模型中。该怎么做?
【问题讨论】:
-
你应该试试 indexer 属性
-
您需要先将它(模型)转换为
IDictionary<string, object>,因为ExpandoObject明确实现了它 -
动态 obj= new ExpandoObject(); obj.NewProp=1;
-
动态 obj= new ExpandoObject(); obj.NewProp= 1; @viveknuna 以及你将如何将
txtBox.Name用作NewProp? -
@Selvin 我参考了OP,他/她可以相应地使用