WPF数据绑定以启用基于多个标准的控制

本文关键字:标准 控制 于多个 数据绑定 启用 WPF | 更新日期: 2023-09-27 18:11:23

我已经到处找了,但不认为我真的找到了答案。我正在尝试更多地掌握数据绑定,并开始看到事情的发展。你可以做数据绑定到像"IsEnabled"基于两个属性,如果是,如何…

ex:一个窗口有一些控件…某些控件可能在某些时间启用,也可能不启用。有时它就像当数据可用时一样简单(比如找到要编辑的记录),或者当添加…我认为这是窗口的"编辑"模式。有时,某些控件仅在执行编辑且用户具有管理权限时可用。

两个条件都必须为真才能使控件"启用"。在类似的条件下,同样可以应用于控件的可见性。

WPF数据绑定以启用基于多个标准的控制

如果你正在使用MVVM模型(如果你正在做WPF开发,你真的应该这样做),那么你的想法是错误的。

这类逻辑属于ViewModel。您应该在ViewModel上拥有一个属性,该属性表示控件(或多个控件)的可见性,并且在ViewModel中拥有所需的任何逻辑(权限、数据有效性、模式等)来确定该值。把逻辑放在视图上不利于你,并且违反了SOC。

ViewModel应该建模你的视图。也就是说,视图中的元素和概念(比如某个特性是否启用或可见)与ViewModel上的属性之间应该(在大多数情况下)有1:1的相关性。

您可以使用MultiBindings和一些自定义聚合多值转换器来声明式地实现这一点。或者,它可能是更显式的(因此推荐)在视图模型上放置一个额外的属性,它混合了其他视图模型属性的值。