如何从Code中的Binding对象获取值作为字符串(WPF)

时间:2018-05-21 12:26:17

标签: wpf string data-binding multibinding valueconverter

我想在我的代码中从Binding获取值并将其用作字符串。我怎么能这样做?

Binding b = new Binding("MyProperty")
                {
                    Source = myobject
                };
//[...]
string value = b //HOW TO GET VALUE FROM b ?

顺便说一句: 我希望在检索此值时调用附加到Binding的Converter。

1 个答案:

答案 0 :(得分:0)

我发现解决方案可能是DependencyProperty的辅助类。

辅助课程

public class TestClass : FrameworkElement
{
    public string MyProperty
    {
        get { return (string)GetValue(MyPropertyProperty); }
        set { SetValue(MyPropertyProperty, value); }
    }
    public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.Register("MyProperty", typeof(string), typeof(TestClass), new PropertyMetadata(""));
}

将转化绑定到字符串

Binding b = new Binding("MyProperty") { Source = myobject };
TestClass tc = new TestClass { DataContext = b };
BindingOperations.SetBinding(tc, TestClass.MyPropertyProperty, b);
string txt = tc.MyProperty;

<强>优点:

  • 您可以使用Binding和MultiBinding
  • 您可以使用转换器

<强>缺点:

  • 每次我们创建一个继承自FrameworkElement的类,这意味着我们会执行不必​​要的操作。