wpf - 获取代码中绑定(bind)的结果

标签 wpf data-binding

我可能正在寻找错误的方式,但是:

有没有办法通过代码获取绑定(bind)的结果值?

可能是一些明显的东西,但我就是找不到。

最佳答案

您只需调用ProvideValue绑定(bind)的方法。困难的部分是你需要通过一个有效的 IServiceProvider到方法... 编辑:实际上,这不是真的... ProvideValue返回 BindingExpression ,而不是绑定(bind)属性的值。

您可以使用以下技巧:

class DummyDO : DependencyObject
{
    public object Value
    {
        get { return (object)GetValue(ValueProperty); }
        set { SetValue(ValueProperty, value); }
    }

    public static readonly DependencyProperty ValueProperty =
        DependencyProperty.Register("Value", typeof(object), typeof(DummyDO), new UIPropertyMetadata(null));

}

public object EvalBinding(Binding b)
{
    DummyDO d = new DummyDO();
    BindingOperations.SetBinding(d, DummyDO.ValueProperty, b);
    return d.Value;
}

...

Binding b = new Binding("Foo.Bar.Baz") { Source = dataContext };
object value = EvalBinding(b);

不是很优雅,但它的工作...

关于wpf - 获取代码中绑定(bind)的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886221/

相关文章:

wpf - 如何使用DynamicDataDisplay在wpf中的一个x-y平面中添加多个图形

wpf - 如何为 WPF WebBrowser 制作动画

javascript - Angular - 创建对象映射

javascript - 更新 Controller 数据不会更新 View - Angular JS - Ionic

c# - 插入数据后如何刷新GridView?

c# - 当从不同的窗口调用 repository.save 时,mvvm 更新 ListView

wpf - AvalonEdit - 用于 JSON 突出显示的 xshd

c# - 使用 IValueConverter 动态加载图像源

c# - 在后面的 UserControl 代码中获取依赖属性值

c# - 将数据从 Controller 绑定(bind)到 View -> Control