2015-12-09 80 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