我正在尝试绑定到一个值,在其上运行转换器,然后显示该值的属性。让转换器直接返回我想要的属性是行不通的,因为我需要跟踪属性更改。
我想要实现的是这样的:
// NOTE: FOLLOWING IS NOT SUPPORTED BY WPF
// A 'Binding' cannot be set on the 'Source' property of type 'Binding'.
// A 'Binding' can only be set on a DependencyProperty of a DependencyObject.
Text={Binding TextField Source={Binding SomeValue, Converter={StaticResource GetObjectFromValueConverter}}}`
理想情况下,这一切都将包含在一个简单的标记扩展中。
Text={l:GetTextField SomeValue}
问题是,除了将元素绑定到转换器,然后将目标字段绑定到属性之外,我找不到任何方法来执行此操作Tag
,如下所示:
Tag={Binding SomeValue, Converter={StaticResource GetObjectFromValueConverter}}
Text={Binding Tag.TextField, RelativeSource={RelativeSource Self}}
这显然很麻烦,有限(你只能得到一个Tag
字段)并且感觉很滥用。在监控变化的同时,我还能如何实现我想要的TextField
?