2013-10-30 36 views
1

我在wpf中有一個組合框,我想從sql表中列出名字和姓氏。它一次只允許一個條目。此外,我想給每個標題,但ValueMemberPath無法識別。從SQL表中列出組合框中的名字和姓氏

private void displayCust() 
    { 
     using (Entities c = new Entities()) 
     { 
      cbUsers.ItemsSource = c.Customer.ToList(); 
      //cbUsers.ValueMemberPath = "First"; 
      cbUsers.DisplayMemberPath = "First"; 
      cbUsers.DisplayMemberPath = "Last"; 
     } 

    } 
+0

在客戶創建一個公共財產全名並結合在那裏。 – Paparazzi

回答

0

到現在爲止,做你想做的最簡單的方法是你overrideToString()方法在customer類:

public override string ToString() 
{ 
    return string.Format("{0} {1}", FirstName, LastName); 
} 

然後,你可以這樣做:

using (Entities c = new Entities()) 
{ 
    cbUsers.ItemsSource = c.Customer.ToList(); 
} 

或者,您可以這樣做:

using (Entities c = new Entities()) 
{ 
    cbUsers.ItemsSource = c.Customer.Select(c => string.Format("{0} {1}", c.FirstName, 
     c.LastName)).ToList(); 
} 

但是,這會導致數值被輸入ComboBox

0

@Sheridan解決方案是一個很好的解決方案。無論如何,如果你不想擁有一個同時兼有這兩個屬性的屬性(就像@Blam所說的那樣),你也可以使用一個MultiValueConverter爲組合框設置一個項目模板。

看看:http://blog.csainty.com/2009/12/wpf-multibinding-and.html

這樣,組合框的ItemsSource時可Customer類,你可以做「事」的程度,而不是作爲一個普通的字符串。

Regards,