多个属性在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