0
我發現了幾個解決方案,假設我有2個或3個綁定對象(或數據模板) - 這對我來說不是很好的解決方案。是否有捷徑可尋?我可以考慮通過可視化樹騎車,並設置綁定的方式,但這種解決方案看起來不太整潔。如何在運行時更改模板元素的綁定?
預先感謝您。
我發現了幾個解決方案,假設我有2個或3個綁定對象(或數據模板) - 這對我來說不是很好的解決方案。是否有捷徑可尋?我可以考慮通過可視化樹騎車,並設置綁定的方式,但這種解決方案看起來不太整潔。如何在運行時更改模板元素的綁定?
預先感謝您。
您可以爲此更改綁定並將其附加到您想要更改綁定的UIElelement,爲此編寫一個自定義附加屬性。你現在要做的就是在綁定應該改變時觸發對附屬屬性的更改。在你附加的依賴項屬性改變eventhander你有權訪問UIElement。
<TextBlock local:Helper.DynamicBinding="{Binding SomeStatePropertyOfTheCurrentDataContext}" />
而且在改變的事件處理方法:
private void OnDynamicBindingChanged(DependencyObject sender, PropertyChangedEventArgs args)
{
var senderButton = sender as TextBlock;
if((args.NewValue as string) == "MainText")
{
// bind to the property "MainText" of the current datacontext now
}
else if((args.NewValue as string) == "OtherText")
{
// bind to the property "OtherText" of the current datacontext now
}
}
但是,如果你遇到需要改變在這樣的運行時綁定的,有可能你的整體設計可以改善!
謝謝,它看起來像這將解決我的問題。我需要更改綁定,因爲我正在對用戶控件的綁定功能進行自動測試。 – Koynov 2010-05-25 14:23:34