gpt4 book ai didi

wpf - MVVM Wait Cursor 如何在调用命令期间设置.wait 光标?

转载 作者:行者123 更新时间:2023-12-03 10:53:04 26 4
gpt4 key购买 nike

设想:

  • 用户单击 View 上的按钮
  • 这会调用 ViewModel 上的命令 DoProcessing

  • 考虑到 View 和 ViewModel 的职责,Wait 光标是如何以及在哪里设置的?
    为了清楚起见,我只是想在命令运行时将默认光标更改为沙漏。命令完成后,光标变回箭头。 (这是我正在寻找的同步操作,我希望 UI 阻止)。
    我在 ViewModel 上创建了一个 IsBusy 属性。如何确保 申请 的鼠标指针变化?

    最佳答案

    你想拥有一个bool View 模型中的属性。

        private bool _IsBusy;
    public bool IsBusy
    {
    get { return _IsBusy; }
    set
    {
    _IsBusy = value;
    NotifyPropertyChanged("IsBusy");
    }
    }
    现在您要设置要绑定(bind)到它的窗口样式。
    <Window.Style>
    <Style TargetType="Window">
    <Setter Property="ForceCursor" Value="True"/>
    <Style.Triggers>
    <DataTrigger Binding="{Binding IsBusy}" Value="True">
    <Setter Property="Cursor" Value="Wait"/>
    </DataTrigger>
    </Style.Triggers>
    </Style>
    </Window.Style>
    现在,每当执行命令并且您的 View 模型很忙时,它只会设置 IsBusy标记并在完成后重置它。窗口将自动显示等待光标并在完成后恢复原始光标。
    您可以在 View 模型中编写命令处理函数,如下所示:
        private void MyCommandExectute(object obj) // this responds to Button execute
    {
    try
    {
    IsBusy = true;

    CallTheFunctionThatTakesLongTime_Here();
    }
    finally
    {
    IsBusy = false;
    }
    }

    关于wpf - MVVM Wait Cursor 如何在调用命令期间设置.wait 光标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10118788/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com