【发布时间】:2012-01-11 17:51:02
【问题描述】:
我有一个视图模型类(使用 Prism)。它有一个关联的 XAML 视图。当我这样做时
this.Cursor
没有任何可用的 Cursor 属性。我必须做什么才能访问光标以便更改其图标?
【问题讨论】:
我有一个视图模型类(使用 Prism)。它有一个关联的 XAML 视图。当我这样做时
this.Cursor
没有任何可用的 Cursor 属性。我必须做什么才能访问光标以便更改其图标?
【问题讨论】:
由于Cursor 是一个与UI 相关的属性,您应该将光标设置在视图中,而不是视图模型中。 this.Cursor 应该可以从视图后面的代码中正常工作
如果您的 Cursor 基于 ViewModel 中的某些内容,例如它正在加载数据,那么当 IsLoading 属性设置为 true 时,请在 XAML 中使用 DataTrigger 更改光标/p>
<Style TargetType="{x:Type Window}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsLoading}" Value="True">
<Setter Property="Cursor" Value="Wait" />
</DataTrigger>
</Style.Triggers>
</Style>
【讨论】:
ViewModel 中,那么最好在ViewModel 上创建IsLoading 属性并使用DataTrigger。 ViewModel 不应该关心 UI,包括 Cursors。
Dispatcher 更新主线程上的IsLoading 属性。