待機カーソルを有効にするには、ボタンのツールバー (ユーザー コントロールです) を話す方法。ViewModelBase から継承された ViewModel があります。しかし、ツールバーで IsWorking を使用することはできません。
以下のコードはツールバーのコードです。選択ボタンをクリックしました。データはデータベースから選択しています。カーソルを待機状態にする必要があります。選択後、カーソルは正常に戻る必要があります。
<Button x:Name="Select"
Content="select"
Command="{Binding SelectCommand }">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Cursor" Value="Arrow"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsWorking}" Value="True">
<Setter Property="Cursor" Value="Wait"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
ViewModelBase.cs: ツールバーとの継承はありません。ベースモデルです。
private bool _isWorking = false;
public bool IsWorking
{
get { return _isWorking; }
set
{
_isWorking = value;
OnPropertyChanged("IsWorking");
}
}
ビューモデルのコードは次のとおりです。
public class MainViewModel : ViewModelBase
{
public void Select()
{
IsWorking = true; cursor turn to wait mode
// db Process...
IsWorking = false; cursor turn to hand mode
}
}
ViewModel からツールバーと通信するには? 選択をクリックしてカーソルを待機モードにする必要があります。選択後、カーソルは手でなければなりません(デフォルト)。