在xaml中数据绑定隐藏(不可见)组合框

时间:2010-09-02 22:37:00

标签: c# silverlight xaml mvvm silverlight-4.0

我在将数据绑定到辅助(非最初聚焦)选项卡中的组合框时遇到问题。基本上,我有一个带有多个选项卡的silverlight表单,每当我将这个组合框移动到第一个(主)选项卡时,数据被加载并且一切都按预期工作,但是当这个组合框位于没有焦点的辅助选项卡中时最初在第一次加载时,组合框没有数据,但是,如果我使用c#绑定组合框后面的代码中有数据!关于如何解决这个问题的任何想法?

我在XAML中的绑定(这不起作用)

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

2 个答案:

答案 0 :(得分:0)

MyList在第一次绑定时很可能是空的。尝试使用切换到下一个选项卡时可用的事件,以加载MyList

答案 1 :(得分:0)

有同样的问题...... 我发现解决问题的解决方案如下: 每当您的数据源(datacontext)发生更改时:遍历所有选项卡项,选择每个选项卡,更新布局并强制重新绑定。最后选择返回初始标签项。这样的事情(在数据源发生变化时触发事件处理程序(在初始加载时可能在加载事件中):

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