我想从代码中的绑定中获取值并将其用作字符串。我该怎么做?
Binding b = new Binding("MyProperty")
{
Source = myobject
};
//[...]
string value = b //HOW TO GET VALUE FROM b ?
顺便说一句:我希望在检索此值时调用附加到绑定的转换器。
我发现解决方案可能是具有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;
优势:
- 可以使用绑定和多重绑定
- 您可以使用转换器
弊:
- 每次我们创建一个继承自 FrameworkElement 的类时,这意味着我们执行不必要的操作。