回答
由于Cursor
是与UI相关的属性,因此应该将该游标设置在视图中,而不是ViewModel中。 this.Cursor
应该正常工作从代码隐藏查看
如果您Cursor
是基于什么东西在ViewModel
比如,如果它的加载数据,然后使用DataTrigger
在XAML来改变光标的时候像一个IsLoading
属性设置为true
<Style TargetType="{x:Type Window}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsLoading}" Value="True">
<Setter Property="Cursor" Value="Wait" />
</DataTrigger>
</Style.Triggers>
</Style>
我需要使用特定方法完成工作时更改光标。我没有IsLoading这样的财产。我想在这个方法的开始处设置光标并在最后改回。有没有其他的方法?此外,这是如何工作,因为它全部在主线上? – 4thSpace 2012-01-11 18:11:20
@ 4thSpace如果你的方法在'ViewModel'中,那么在ViewModel上创建一个'IsLoading'属性并使用'DataTrigger'是个好主意。 ViewModels不应该关心用户界面,并且包括游标。 – Rachel 2012-01-11 18:18:08
@ 4thSpace我不确定你为什么关心线程。这可能是唯一一个问题,如果你正在后台线程上进行处理。然后,您必须记住在开始处理之前或使用“Dispatcher”来执行在主线程上更新IsLoading属性的操作。 – Rachel 2012-01-11 18:19:44
检查this question,尤其是与OverrideCursor
类的答案。
- 1. 其他字符更改标签“称号”,在后面的代码
- 2. WPF - 在代码后面更改代码样式
- 3. 从代码更改visibility属性后面
- 4. 从后面的代码Sileverlight更改值
- 5. 如何更改代码后面的ItemsPanelTemplate?
- 6. 更改代码中的桌面图标
- 7. 如何在VS代码中更改光标?
- 8. 从c#代码后面更改按钮标签
- 9. 更改弹出式面板的光标
- 10. 在asp.net中更改光标
- 11. 任务完成后更改光标
- 12. 查询中更改光标后 - onStart()?
- 13. asp.net更改gridview的代码后面的代码格值
- 14. 更改光标VB.NET
- 15. Java更改光标
- 16. JavaScript更改光标图标
- 17. 更改背后的代码
- 18. 在html页面上更改鼠标光标
- 19. 更改innerHTML后更改contenteditable div中的光标位置
- 20. 在某些组件上更改鼠标光标而不影响其他光标设置代码
- 21. 在Silverlight中更改鼠标光标
- 22. 在Share Point中更改鼠标光标
- 23. 在代码后面读取标签值
- 24. 从后面的代码更改asp.net页面的网址
- 25. ViewModel在更改后通知代码
- 26. JavaScript光标更改(并再次更改)
- 27. Silverlight:如何在代码后面更改AxisLabelStyle?
- 28. .NET如何在代码后面更改控件的位置?
- 29. INotifyDataErrorInfo不会引发错误在代码后面更改
- 30. 更新从System.timers.timer后面的代码后面的代码更新UpdatePanel
'this'的类型是什么? – 2012-01-11 17:56:44