14

我遇到了问题Binding。依赖属性与转换器绑定Rectangle.Fill到一个。ObservableCollection虽然ObservableCollectionimplements INotifyCollectionChanged,绑定没有更新。但是,我设法通过将我的委托附加到集合的更改通知事件并手动刷新绑定来解决这个问题:

    void ColorsCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
    {
        BindingExpression b = colorRectangle.GetBindingExpression(Rectangle.FillProperty);
        if (b != null)
            b.UpdateTarget();
    }

但是,最近,我将 更改BindingMultiBinding,并且上述解决方案停止工作(即bis null)。有没有办法强制Multibinding更新目标属性?

最好的问候——幽灵。

4

1 回答 1

27

对于多重绑定,绑定表达式是 a MultiBindingExpression,它继承自BindingExpressionBase,但不继承自BindingExpression。因此GetBindingExpression,对于多重绑定返回 null。相反,您可以使用BindingOperations.GetMultiBindingExpression

MultiBindingExpression b = BindingOperations.GetMultiBindingExpression(colorRectangle, Rectangle.FillProperty);
于 2011-04-07T08:17:28.613 回答