gpt4 book ai didi

wpf - 绑定(bind)到 UWP 中的多个属性

转载 作者:行者123 更新时间:2023-12-04 19:51:48 24 4
gpt4 key购买 nike

在 C# 项目中,我有一个复杂的模型,它使用许多嵌套在列表和字典中的类(例如,对象 A 有一个 B 的实例列表,其中有一个字典,其中值是 C 的实例)。
在我的一个页面中,这个模型使用嵌套 ItemsControl 显示在一个复杂的 View 中。 s。

另外还有一个Settings存储用户偏好的类,其中一些绑定(bind)到页面上的复选框。

现在,我想在 DataTemplate 中绑定(bind)一些控件的属性。 s 为模型属性和设置的组合。例如,假设 C有房产IsBoring ,并且有一个设置Settings.HideBoringStuff .我想绑定(bind) TextBlock 的可见性代表C这些属性的明显组合。

如果没有丑陋的黑客,我不知道如何做到这一点。
以下是我的一些想法以及为什么它们不起作用:

  • 使用 MultiBinding ,这是专门为此设计的。但是,MultiBinding在 UWP 项目中不可用。
  • Bind to multiple properties on the page that implement the logic in their getters and setters.这不起作用,因为我在 DataTemplate 中,所以我需要这个逻辑的多个独立副本。
  • 使用 Converter转换模型属性,将设置作为 ConverterProperty 传递.但是,ConverterPropertyn o DependencyProperty因此不能被束缚。
  • 将所需的属性直接构建到模型中 – Settings无论如何都是单例。这感觉真的很难看,因为我会将不必要的依赖项和 View 逻辑混合到我的模型中。
  • 构建包装模型类的单独类,同时存储 Settings要使用的对象,然后提供组合属性。这感觉也很丑陋,因为我需要复制模型的整个对象层次结构。 (在示例中,ViewA 需要提供 ViewB 的列表,每个列表都有一个字典,其中的值是对应的 ViewC。)
  • Wait for Microsoft to bring MultiBinding back.不幸的是,我缺乏必要的乐观情绪。

  • 哪些是在 UWP 应用程序中执行此操作的简洁方法?

    最佳答案

    确实,Multibinding 并没有出现在新的 win 开发堆栈中。但是 Cimbalino 工具包从 wp8 天开始就拥有它。
    它还有一个 UWP 端口。

    所以也许试试吧!

    早期的博客文章解释了使用:https://www.pedrolamas.com/2013/05/17/cimbalino-windows-phone-toolkit-multibindingbehavior/
    获取 Cimbalino 是通过 nuget 完成的,可以在 Github 上获得 https://github.com/Cimbalino/Cimbalino-Toolkit

    关于wpf - 绑定(bind)到 UWP 中的多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34187390/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com