gpt4 book ai didi

Silverlight - 将按钮上的 IsEnabled 属性绑定(bind)到 ViewModel 上的属性

转载 作者:行者123 更新时间:2023-12-01 09:39:27 26 4
gpt4 key购买 nike

我正在构建一个 Silverlight 应用程序,我想在后台进行长时间运行的操作时禁用一个按钮。我正在使用 MVVM,所以在 ViewModel 中我有一个名为 SearchInProgress 的属性。现在我想在 SearchInProgress 为真时禁用搜索按钮。在 WPF 中,我只需编写一个 DataTrigger,将搜索按钮上的 IsEnabled 设置为 false。

遗憾的是,Silverlight 中不提供 DataTrigger,因此我正在寻找另一种解决方案。我试过玩弄 VisualStateManager,但我没有得到任何结果。对于我试图实现的这个简单的事情,VSM 似乎有点矫枉过正。

感谢任何帮助。

最佳答案

与其跳过障碍让 SearchInProgress=true 设置 IsEnabled=false,不如直接创建一个 CanSearch 属性并绑定(bind)到该属性.该属性可以是只读的(或具有私有(private) setter ),并且另一个属性可以代表它触发 PropertyChanged 事件。

最终, View 模型的意义在于您从 View 中删除逻辑。将 View 绑定(bind)到 SearchInProgress(因此,使用转换器将其否定为 IsEnabled)意味着 View 理解 何时 它应该或应该'无法搜索。然而,绑定(bind)到 CanSearch 属性意味着 View 模型可以完全控制何时启用搜索并且 View 可以保持哑。

或者,您可以使用与 Blend 一起安装的 Blend 行为 API,因为它们具有类似于数据触发器的功能。

关于Silverlight - 将按钮上的 IsEnabled 属性绑定(bind)到 ViewModel 上的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311989/

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