请在Visual Studio 2010,.NET 4.0 WinForms应用程序,然后让用户控制(从项目/添加用户控件...)使用此代码:这段代码为什么阻止我的应用程序关闭?
public partial class UserControl1 : UserControl
{
private string _SelectedTable;
public string SelectedTable
{
get { return _SelectedTable; }
set { _SelectedTable = value; }
}
public UserControl1()
{
InitializeComponent();
DataBindings.Add("SelectedTable", listBox1, "SelectedValue");
listBox1.DataSource = new List<string>();
}
}
编译,加上从控制工具箱为Form1
,再次编译并尝试关闭。它不会(对吧?)。为什么?
有些事情我可以做,以防止这种情况发生,如将DataBindings.Add("SelectedTable", listBox1, "SelectedValue");
行更改为DataBindings.Add("SelectedTable", tablesListBox, "SelectedValue", false, DataSourceUpdateMode.Never);
,或删除InitializeComponent()
后的任意两行。但我想知道为什么会发生这种情况,或者至少是什么,一般来说我做错了什么,我打破了一般规则,所以我不会再犯类似的错误。
好吧,'SelectedValue.ToString()'给我在列表中选择的任何文本,与'SelectedItem.ToString()'相同。我想我会使用'SelectedItem',因为它似乎是约定。 – Juan 2010-10-27 16:07:00
我同意它*应该*与'SelectedValue'一起工作,但显然它不会......可能您应该在Microsoft Connect上提交一个错误,因为我没有看到这种行为的任何合理解释。 – 2010-10-27 23:14:16
事实上,它必须是一个错误,因为如你所说没有逻辑连接,没有什么会引发异常,并且Microsoft的文档中没有__'Note'__。 – Juan 2010-10-28 17:33:56