我有以下代碼:組合框沒有要求MyClass.ToString()
public partial class Form1 : Form
{
public BindingList<Class> List = new BindingList<Class>();
public Form1()
{
InitializeComponent();
List.Add(new Class());
comboBox1.DataSource = List;
}
}
public class Class : Dictionary<string, string>
{
public override string ToString()
{
return "Class";
}
}
的問題是,組合框顯示文本,而不是「類」「(集合)」。每當我刪除Dictionary<string, string>
作爲Class
的祖先時,代碼顯示的「Class」就像我希望的那樣。即使當我從另一個基類中派生出來時,我自己也寫了它,它工作正常。這當然不是真正的計劃,而是孤立的問題。所以我錯過了什麼,或者我沒有其他選擇,除了在Class
中聲明Dictionary<string, string>
字段而不是繼承它的子類? (哦,對了,我已經嘗試添加在ToString
功能斷點,它不被調用。)
如果Control.FormattingEnabled標誌爲true,.NET數據綁定實現會自動爲您設置集合類的格式。如果你想要一個擴展的解釋,看看: http://msdn.microsoft.com/en-us/library/aa480734.aspx – Matt 2010-07-23 21:05:55
這是完美的。感謝你們 – Juan 2010-07-23 21:13:24