2015-12-09 121 views
5

多個屬性在C#項目,我必須使用大量嵌套在列表和字典(類複雜的模型如對象AB情況下,有一本字典這其中價值觀是C實例的列表)。 在我的其中一頁中,該模型使用嵌套ItemsControl s以複雜視圖顯示。綁定到UWP

此外,還有一個Settings類存儲用戶的偏好,其中一些被綁定到頁面上的複選框。

現在,我想在DataTemplate秒鐘內某些控件的屬性綁定到一個模型屬性和設置的組合。例如,假設C有一個屬性IsBoring,並且有一個設置Settings.HideBoringStuff。我想將TextBlock代表C的可見性綁定到這些屬性的明顯組合。

我不知道該怎麼做,沒有醜陋的黑客。 下面是我的一些想法,爲什麼他們不工作:

  • 使用MultiBinding,這是專門用來做這個。但是,UWP項目中不提供MultiBinding

  • Bind to multiple properties on the page that implement the logic in their getters and setters.這不工作,因爲我是一個DataTemplate裏面,所以我需要這種邏輯的多個獨立副本。

  • 使用Converter轉換模型屬性,將設置作爲ConverterProperty傳入。但是,ConverterPropertynoDependencyProperty因此不能被綁定。

  • 在模型中建立所需的屬性– Settings無論如何都是單身人士。這感覺真的很難看,因爲我將不必要的依賴和查看邏輯混合到我的模型中。

  • 構建包裝模型類的單獨類,還存儲要使用的對象,然後提供組合的屬性。這也感覺非常難看,因爲我需要複製模型的整個對象層次結構。 (在該示例中,ViewA需要提供的ViewB S,其中的每一個具有一個辭典的列表,其中的值被相應ViewC峯)

  • Wait for Microsoft to bring MultiBinding back.不幸,我缺乏所需的樂觀。

哪種方法可以在UWP應用程序中執行此操作?

回答

4

何嘗Multibinding一直沒有對周圍的新勝利開發堆棧。但是Cimbalino工具包早在wp8開始就已經有了。 它也有一個UWP端口。

所以也許嘗試一下!

博文從成立之初解釋使用:https://www.pedrolamas.com/2013/05/17/cimbalino-windows-phone-toolkit-multibindingbehavior/ 入門Cimbalino的保持是通過做的NuGet並且可在Github這裏https://github.com/Cimbalino/Cimbalino-Toolkit

+0

這看起來很有希望,非常感謝!我會盡快調查。 – fefrei

+0

我希望它能解決你的問題:) – Depechie

+0

它實際上工作!不過,在設計時,XAML解析器顯示錯誤('collection property __implicit_items is null')。你有什麼想法,爲什麼? – fefrei