silverlight 4 combox不绑定c#

silverlight 4 combox不绑定c#,c#,silverlight-4.0,C#,Silverlight 4.0,我有一个silverlight页面,可以将对象绑定到该页面 当我第一次加载页面时,所有的组合框都会填满,并且它们会显示正确的选定项。 当我刷新页面时,组合框仍然有它们的项目,但是所选的值没有绑定 装订使用 SelectedValue="{Binding WriterID,Mode=TwoWay}" Article.DataContext = ActiveArticle 更新: 当我更改控件的datacontext时,它似乎正在丢失数据绑定 知道为什么吗?正如我在评论中指出的,这是一个已知的问题

我有一个silverlight页面,可以将对象绑定到该页面

当我第一次加载页面时,所有的组合框都会填满,并且它们会显示正确的选定项。 当我刷新页面时,组合框仍然有它们的项目,但是所选的值没有绑定

装订使用

SelectedValue="{Binding WriterID,Mode=TwoWay}"
Article.DataContext = ActiveArticle
更新: 当我更改控件的datacontext时,它似乎正在丢失数据绑定
知道为什么吗?

正如我在评论中指出的,这是一个已知的问题。我一直找不到我要找的推荐人,但我找到了这个

解决方案是在选择更改时重置绑定表达式。报告中的代码在子类的
组合框中执行此操作,但如果无法在应用程序中重写
组合框,则可以在视图类中执行此操作

public class XComboBox : ComboBox 
{ 
    private BindingExpression bE; 
    public XComboBox() 
    { 
        this.SelectionChanged += new SelectionChangedEventHandler(XComboBox_SelectionChanged); 
    } 

    void XComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
        if (bE==null) 
        { 
         bE = this.GetBindingExpression(ComboBox.SelectedValueProperty); 
        } 
        else 
        { 
            if (this.GetBindingExpression(ComboBox.SelectedValueProperty) == null) 
            { 
             this.SetBinding(ComboBox.SelectedValueProperty, bE.ParentBinding);     
            } 
        } 
    } 
}

更改datacontext时丢失绑定是一个已知问题。不幸的是,我手头没有参考资料。如果你把这个作为答案,我会接受:)