亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在工作完成時禁用網格?

如何在工作完成時禁用網格?

C#
幕布斯6054654 2021-06-29 09:00:15
所以我一直在嘗試在工作完成時禁用我的 wpf 中的網格,然后在完成后重新啟用它,但到目前為止我一直沒有成功。這是我目前認為應該完成的代碼:XAML 代碼 <Button Name="ButtonCompare" Grid.Column="2" Grid.Row="6" Height="25" Width="80" Click="compare" Margin="0,0,0,7">Compare</Button>C# 代碼    private async Task DoWork()    {        await Task.Run(() =>        {            Thread.Sleep(3000);        });    }    private async void compare(object sender, RoutedEventArgs e)    {        if (bu1Valid is false || bu2Valid is false)        {            MessageBox.Show("A valid backup path has not been entered", "Error", MessageBoxButton.OK, MessageBoxImage.Error);        }        else        {            myDatagrid.IsEnabled = false;            await DoWork();            myDatagrid.IsEnabled = true;        }    }到目前為止,我已經嘗試使用綁定、按鈕上的不同事件和網格上的事件,但它們都具有相同的結果,其中網格中的所有控件都保持啟用狀態。如果我取出重新啟用網格的部分,則在事件完成后網格將變為禁用狀態,但我試圖在它開始工作之前使其禁用,因此在運行時無法再次單擊按鈕作業正在運行。
查看完整描述

2 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

這是一個例子。


private async void startButton(object sender, RoutedEventArgs e)

{

    CancelEnabled = true;

    await start();

}


private async void Button_Click(object sender, RoutedEventArgs e)

{

    btnTest.IsEnabled = false;

    await Dowork();

    btnTest.IsEnabled = true;

}

private async Task Dowork()

{

    await Task.Delay(1000);

}



查看完整回答
反對 回復 2021-07-03
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

您需要在 DoWork() 方法中使用異步調用。將“await”放在調用前面將確保異步調用之后的代碼在調用完成之前不會執行。


private async void doWork()

{

        await MakeYourCallHere();

        myDatagrid.IsEnabled = true;

}


查看完整回答
反對 回復 2021-07-03
  • 2 回答
  • 0 關注
  • 162 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號