【发布时间】:2018-10-20 04:10:04
【问题描述】:
我正在练习 viewModel 的结构和数据绑定。我创建按钮并将它们添加到一个数组中,以便我可以使用 for 循环轻松管理它们。但是,我在绑定它们时似乎犯了一些错误。
这是我的代码:
public class MyForm : Form
{
private ViewModel viewModel;
private Button[] buttons;
public MyForm (ViewModel viewModel)
{
this.viewModel = viewModel;
InitializeComponent();
buttons = new Button[]
{
button1, button2, button3, ...
};
for (int i = 0; i < buttons.Length; ++i)
{
buttons[i].DataBindings.Add("Text", viewModel, "ButtonText[" + i + "]");
}
}
(...)
}
在我的 ViewModel 中
public class ViewModel
{
private string[] buttonText;
public string[] ButtonText
{
get
{
return buttonText;
}
}
public ViewModel ()
{
buttonText = new string[]
{
"string1", "string2", "string3", ...
};
}
(...)
}
当我运行它时,我得到一个ArgumentException
System.ArgumentException: '无法绑定到数据源上的属性或列“ButtonText[0]”。参数名称:dataMember'
我应该如何修改我的绑定以获得正确的程序行为? 提前致谢!
【问题讨论】:
标签: c# winforms button data-binding windows-forms-designer