1
我試圖綁定到一個值,在其上運行轉換器,然後顯示該值的屬性。讓Converter直接返回我想要的屬性將不起作用,因爲我需要跟蹤屬性更改。如何綁定到轉換器返回的對象的屬性
我試圖實現將是這樣的:
// 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
的變化時我還能如何實現我想要的?
這當然假定您沒有其他綁定到您的外部DataContext,但只要這是一個很好的解決方案。 –
@JohnBowen - 好點,我澄清了我的答案。 – CodeNaked
但是如果我想將文本綁定到一個對象 - >轉換器 - >屬性和TextWrapping到另一個呢?使用DataContext for一個和標記(通過RelativeSource FindAncestor引用前一個DataContext)爲另一個?似乎非常hackish ..如果我想要3呢? – Mania