2009-09-07 72 views

回答

2

您應該使用空字符串或其他唯一文本模式而不是null。

然後你可以處理Combobox的Format事件來攔截<empty>並顯示一個替代文本。

private void comboBox1_Format(object sender, ListControlConvertEventArgs e) 
{ 
    e.Value = FormatForCombobox(e.ListItem); 
} 


private string FormatForCombobox(object value) 
{ 
    string v = (string) value; 
    if (v == string.Empty) 
    v = "<no Selection>"; 
    return v; 
} 
+0

我無法組合框,因爲它勢必實體列表中添加任何東西。 – wRAR 2009-09-07 11:18:38

+0

您仍然可以在綁定時添加事件。 – 2009-09-07 11:20:17

+0

它不會幫助,因爲我沒有什麼特別的格式。 – wRAR 2009-09-07 11:34:50

7

如果你綁定到實體IEnumerable列表你當然可以手動添加空對象。

例如

var qry = from c in Entities 
      select c; 
var lst = qry.ToList(); 

var entity = new Entity(); 
entity.EntityId= -1; 
entity.EntityDesc = "(All)"; 
lst.Insert(0, entity); 

MyComboBox.DataSource = lst; 
MyComboBox.DisplayMember = "EntityDesc" 
MyComboBox.ValueMember = "EntityId" 
相關問題