gpt4 book ai didi

WPF 和 MVVM : Enable a command only when a textbox has focus with implementation in ViewModel?

转载 作者:行者123 更新时间:2023-12-03 10:30:36 24 4
gpt4 key购买 nike

我有一个命令,我希望仅在某个控件具有焦点时才启用该命令。我可以使用路由命令和命令绑定(bind)来做到这一点,但我想将实现保留在我的 ViewModel 中。

代码中的命令绑定(bind)和事件处理程序是唯一的方法吗?

最佳答案

要在 ViewModel 中处理此问题,您需要将具有焦点的“特定控件”的概念添加到您的 View 模型中,从而在此焦点状态更改时启用该命令。您可以通过向 View 模型添加 bool IsCertainControlFocused 属性来完成此操作.

要更新此状态,您有两个选择,要么在 View 后面的代码中处理 GotFocus 和 LostFocus 事件,然后在 View 模型上设置此 bool 属性。或者使用其中一种 MVVM 框架抽象机制。例如,MVVM Light 框架有一个 EventToCommand 行为,它允许您将事件连接到 View 模型公开的命令,该命令可以设置此属性。

http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx

您使用哪种技术取决于没有代码隐藏对您的重要性。我个人并不虔诚地遵循这一点,只要 View Model 有正确的职责,并且是可测试的,后面的一点代码都没有坏处!

关于WPF 和 MVVM : Enable a command only when a textbox has focus with implementation in ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4560510/

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