多個屬性在C#項目,我必須使用大量嵌套在列表和字典(類複雜的模型如對象A
有B
情況下,有一本字典這其中價值觀是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
傳入。但是,ConverterProperty
是noDependencyProperty
因此不能被綁定。在模型中建立所需的屬性–
Settings
無論如何都是單身人士。這感覺真的很難看,因爲我將不必要的依賴和查看邏輯混合到我的模型中。構建包裝模型類的單獨類,還存儲要使用的對象,然後提供組合的屬性。這也感覺非常難看,因爲我需要複製模型的整個對象層次結構。 (在該示例中,
ViewA
需要提供的ViewB
S,其中的每一個具有一個辭典的列表,其中的值被相應ViewC
峯)Wait for Microsoft to bring
MultiBinding
back.不幸,我缺乏所需的樂觀。
哪種方法可以在UWP應用程序中執行此操作?
這看起來很有希望,非常感謝!我會盡快調查。 – fefrei
我希望它能解決你的問題:) – Depechie
它實際上工作!不過,在設計時,XAML解析器顯示錯誤('collection property __implicit_items is null')。你有什麼想法,爲什麼? – fefrei