2010-09-02 77 views
0

我有一個綁定數據到輔助(最初沒有關注)選項卡中的組合框的問題。基本上,我有一個帶有多個選項卡的silverlight表單,每當我將此組合框移動到第一個(主)選項卡時,數據將被加載並且所有內容都按預期工作,但是當此組合框位於沒有焦點的輔助選項卡中時最初在第一次加載時,組合框沒有數據,但是,如果我的數據綁定組合框使用C#代碼後面的代碼有數據!有關如何解決這個問題的任何想法?xaml中的數據綁定隱藏(不可見)組合框

我在XAML綁定(這不起作用)

<ComboBox x:Name="MyComboBox" Height="24" Width="149" 
      ItemsSource="{Binding Path=MyList}" DisplayMemberPath="Name" /> 

回答

0

MYLIST是最有可能爲空時,它的第一個約束。嘗試使用一個事件,當您切換到下一個選項卡可用,加載MYLIST

+0

都能跟得上,這不是問題,我使用的是可觀察的收集和發射當數據被填充時關閉一個事件,問題是cmbbox沒有選擇它,因爲它還沒有渲染,因此當數據第一次被填充時沒有綁定 – Jason 2010-11-16 15:08:34

0

有同樣的問題... 我找到解決問題的解決方案如下: 每當你的數據源(的DataContext)更改:遍歷所有選項卡項目,選擇每個項目,更新佈局並強制重新綁定。最後選擇返回最初的標籤項目。像這樣的(東西在事件處理程序觸發辦時,您的數據源的變化(可能是在加載事件中的初始負載的情況下):

var selectedIndex = tabControl.SelectedIndex; 
foreach (TabItem item in tabControl.Items) 
{ 
    tabControl.SelectedItem = item; 
    item.UpdateLayout(); 
    DataContext = null; 
    DataContext = ViewModel; 
} 
tabControl.SelectedIndex = selectedIndex;