2011-05-09 98 views
2

在XAML中使用下面的綁定時,所選項目不會顯示在組合框中(具體而言,當前類型不會顯示在站點上)。我們正在使用caliburn微框架和DevForce Ideablade。 MySite是一個Ideablade實體。爲什麼SelectedItem不顯示在組合框中

<ComboBox Grid.Column="3" Grid.Row="3" 
      ItemsSource="{Binding MySiteTypes}" 
      DisplayMemberPath="description" 
      SelectedItem="{Binding MySite.SiteType, Mode=TwoWay}" 
      SelectedValuePath="description"/> 

代碼在視圖模型:

private BindableCollection<SiteType> _mySiteTypes; 
    public BindableCollection<SiteType> MySiteTypes 
    { 
     get { return _mySiteTypes; } 
     set { _mySiteTypes = value; NotifyOfPropertyChange(() => MySiteTypes); } 
    } 

一旦予設置站點類型與組合框(的類型是存在於下拉),它正確顯示的類型和在數據庫中的改變的類型。我錯過了什麼,爲什麼它不想第一次顯示現有類型?

回答

2

好的,我發現了溶液(邁爾斯Ĵ接近):從所述的ItemSource項目之前

選擇的項目進行評價裝載使所選擇的項目不被顯示。我需要調用NotifyOfPropertyChange for MySite AFTER填充MySiteTypes完成的異步查詢。

+0

也許這也是我的問題。我稍後再嘗試... – zapico 2011-05-09 12:25:07

0

這些項目是否加載?也許你將不得不使用DataTemplate來顯示他們的文本屬性。

如果他們是字符串,我最近有一個類似的問題,必須通過轉換器使用的selectedIndex:

Converter for ComboBox in Silverlight 4

2

從我對ComboBox經驗,這些類型的問題往往歸結爲時機。您的ItemSource(MySiteTypes)在SelectedItem綁定評估之前是否可用?

+0

你是對的,這是一個時間問題 – 2011-05-09 11:13:17