silverlight 4组合框不绑定c#

时间:2011-01-14 23:16:15

标签: c# silverlight-4.0

我有一个将对象绑定到的Silverlight页面。

首次加载页面时,所有组合框都会填充,并显示正确的选定项目。 刷新页面时,组合框仍然包含其项目,但所选值不会绑定。

使用

绑定
SelectedValue="{Binding WriterID,Mode=TwoWay}"
Article.DataContext = ActiveArticle

更新: 当我更改控件的datacontext时,它似乎丢失了数据绑定 有什么想法吗?

1 个答案:

答案 0 :(得分:3)

正如我在评论中所说,这是一个已知问题。我找不到我想要的参考文献,但我找到了bug report on Microsoft Connect

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

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);     
            } 
        } 
    } 
}