2011-08-22 82 views
0

我有以下的WPF標記問題使用LINQ to SQL查詢數據綁定到一個WPF組合框

<ComboBox x:Name="realmComboBox" 
      DisplayMemberPath="Name" 
      SelectedValuePath="Name" 
      Width="120" /> 

我發現說下面的一個在網絡上無數的例子應該工作

realmComboBox.ItemsSource = from realm in _db.Realms select realm; 

realmComboBox.ItemsSource = (from realm in _db.Realms select realm).ToList(); 

但我得到的只是一個空白的下拉菜單。如果您沒有設置DisplayMemberPath,甚至不會出現告訴我的ToString問題。我發現,工作的唯一事情是以下

realmComboBox.ItemsSource = from realm in _db.Realms 
          select new { 
           Name = realm.Name 
          }; 

但是,這感覺就像是資源的浪費總,因爲我已經在內存中的領域對象,它顯然有一個名稱屬性。我錯過了什麼?

+1

'Realm.Name'是一個公共屬性嗎?如果不是這可能是一個問題... –

+1

哦,你好!當然,我在想這個答案是什麼。此外,在調試時檢查Visual Studio中的輸出窗口將幫助您識別綁定錯誤。有些有點神祕,有些則沒什麼幫助,但是在這種情況下的錯誤會提到類似'無法在對象'Realm'上找到公共屬性'名稱'或其他類似的內容。 – fatty

+0

Name屬性是公共的。當我在調試器下運行時,立即窗口中沒有輸出。該對象確實使用[Table]屬性,並且該屬性具有[Column]屬性,這些屬性可能會干擾某些操作? – LetTheBeatingBegin

回答

1

要闡述我的意見,這是一個公共field

public string Name; 

這是一個公共property

public string Name { get; set; } 

由於它僅使用屬性我將被匿名類型的作品假設你的數據只有公共字段。

此外:即時窗口不是輸出窗口,您可能需要通過View > Output來顯示它。

+0

可以將Visual Studio配置爲將調試消息重定向到即時窗口。 http://www.professionalvisualstudio.com/blog/2008/07/24/debugging-tip-of-the-week-1-the-immediate-window/ –

+0

我可以看到輸出窗口,當我建立但儘快我在調試器中運行,Visual Studio關閉它並查看|輸出菜單項不可用。 – LetTheBeatingBegin