|
3
|
| Manuel R. · 技术社区 · 16 年前 |
|
|
1
7
而不是跳过去
最后,视图模型的观点是您从视图中移除逻辑。将视图绑定到
或者,您可以使用与Blend一起安装的混合行为API,因为它们具有类似于数据触发器的功能。 |
|
|
2
1
可以说,更好的方法是使用prism2中的delegatecommand,方法是将其附加到搜索按钮上,并在视图模型中实现其canexecute方法,以便返回!正在搜索。 然后,当ViewModel启动搜索操作时,它会将searchinprogress更改为true(以便canexecute返回false),然后在搜索操作结束后,对命令调用raisecanecuetechanged(这将导致按钮被禁用),ViewModel会将searchinprogress更改回false(以便canexecute返回tru)e)然后再次调用raisecanecuetechanged(这将导致按钮被启用) |
|
|
3
0
为数据模型使用DependencyProperty或InotifyPropertiesChanged接口,然后绑定到公共属性SerachInProgress。我想你可能也要做一个转换器,来转换成布尔值的另一个。 |
|
|
4
0
绑定到searchinprogress属性,但通过转换器运行它以反转布尔值。 在装订过程中,
在converter convert函数中,我认为应该是
用任何健全的检查,你想把周围的空项目,等等。 |
|
|
5
0
目前我能想到的唯一合理的解决方案是在视图订阅的视图模型中完成一个事件“searchCompleted”,然后在事件触发时相应地更改视图。 |
|
|
6
0
完全没有理由为此将prism dll添加到您的项目中。您只需要10行代码和2个单元测试。 不过,您仍然希望使用命令模式。添加一个带有“icommand”的“command”附加属性,设置该属性后,您可以:
关于棱镜的一个注释:图书馆糟透了!但是 Composite Application Guidance Book 对于编写MVVM应用程序的任何人来说都是一个基本的阅读,并提供有关命令模式的更多信息。 |
|
|
7
0
我找到了一个我很满意的解决方案。 首先,我在布局根网格“searchinprogress”和“normal”上定义了两个VSM状态。
非常简单,我可能会调整它们,但它是有效的。 要在使用数据状态行为的状态之间切换 here 它允许我绑定到DataContext(ViewModel)上的属性,并相应地在两个状态之间切换:
我认为我现在能够使用VSM的强大功能、混合的可设计性和“datatrigger”机制的灵活性来充分发挥作用。 |
|
|
8
0
您需要创建一个命令并将其绑定到按钮。你要找的所有东西都为你烤进了运行时。像mvvm light和prism这样的框架可以很容易地创建新的命令,但是您可以这样做: 创建实现ICommand的类。给它一个名为searchinprogress的私有bool。搜索开始时,将SearchinProgress设置为true。搜索完成后(成功或因超时、中止等原因),将SearchinProgress设置为false。实现ICommand.CanExecute返回!正在搜索。在视图模型上公开搜索图标命令,然后将按钮的命令属性绑定到视图模型上的命令。 伪代码:
XAML:
|
|
|
Bigeyes · 如何在MVVM模式中添加行? 10 年前 |
|
|
User9898 · 悬停回到原始颜色时为什么选择 10 年前 |
|
|
user3112242 · 在Silverlight中打印。缺少一些页面 10 年前 |
|
|
Huma Ali · WCF已完成事件中的异常处理 10 年前 |
|
|
Nerd in Training · 文件副本发布错误 11 年前 |