請在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