Silverlight中的MVVM(ICommand)

Silverlight中的MVVM(ICommand),第1张

概述请不要严格判断此问题是先前讨论过的,还是在附近的巨大棱镜和mvvm博客中间接回答. 在RelayCommand或DelegateCommand类的 WPF实现中,有一个这样的事件处理程序 /// <summary>/// Occurs whenever the state of the application changes such that the result/// of a call 请不要严格判断此问题是先前讨论过的,还是在附近的巨大棱镜和mvvm博客中间接回答.
在RelayCommand或DelegateCommand类的 WPF实现中,有一个这样的事件处理程序

/// <summary>/// Occurs whenever the state of the application changes such that the result/// of a call to <see cref="CanExecute"/> may return a different value./// </summary>public event EventHandler CanExecuteChanged{    add { CommandManager.RequerySuggested += value; }    remove { CommandManager.RequerySuggested -= value; }}

但在SL的命名空间子集中没有CommandManager类.这就是我被困住的地方.我还没有找到针对SL的MVVM采用的解决方法(PRISM对我来说太复杂了).不同的简单HelloWorldMVVM应用程序根本不处理.

在此先感谢,抱歉我的英语 – )

解决方法 Silverlight中不支持命令.当用户在视图中 *** 作控件时,您必须编写代码(例如事件处理程序),以修改视图后台代码中的视图模型.当用户单击视图中的按钮时,这可能就像在视图模型上调用方法一样简单.通过使用PRISM,您可以在XAML中为您的视图创建附加属性以摆脱这些事件处理程序,但如果您不想使用PRISM,您可以简单地使用事件处理程序.

您必须处理的另一个方面是在视图模型更改时修改视图.特别是,您需要根据视图模型的状态启用和禁用控件.要实现此目的,您必须将控件的IsEnabled属性绑定到视图模型中的某些内容,以反映是否允许某个 *** 作.实现转换为布尔值的自定义IValueConverter对象通常很有用.例如,如果您的视图模型具有表示计数的属性,并且您希望仅在计数大于零时启用视图中的特定控件,则可以创建一个值转换器,当数量更大时转换为true比零,并在绑定中使用此值转换器.

如果您尝试调整MVVM应用程序的WPF示例,则必须摆脱命令的所有使用并替换您自己的代码.您的示例中的代码在Silverligt中没有意义,但在WPF中,它涉及确定视图中的控件是否已启用,可见等的过程.

总结

以上是内存溢出为你收集整理的Silverlight中的MVVM(ICommand)全部内容,希望文章能够帮你解决Silverlight中的MVVM(ICommand)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存