簡體   English   中英

在WPF中將文本塊更新為變量的值

[英]Update textblock to value of variable in WPF

編輯:我想將文本塊的值更新為在另一個類上定期生成的隨機變量的值。

我的實現阻止了應用程序中的其他功能(按鈕)。 有什么建議嗎?

   public partial class MainWindow : Window
{
    TaskViewModel viewModel = new TaskViewModel();

    public MainWindow()
    {
        this.DataContext = viewModel;
        InitializeComponent();
        Server_V2.AsyncService.runMain();
        DisplayAV();
    }

    //Display Availability
    private async void DisplayAV() {
        while (true) {
            //availabilityField.Text = Server_V2.AV.ToString();
            viewModel.Availability = Server_V2.AV.ToString();
            await Task.Delay(500);
        }
    }

    public class TaskViewModel : INotifyPropertyChanged
    {
        private string availabilty = "0";
        public string Availability
        {
            get { return availabilty; }
            set { availabilty = value; OnStaticPropertyChanged();}
        }
        public event PropertyChangedEventHandler PropertyChanged;
        public void OnStaticPropertyChanged([CallerMemberName] string PropertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
        }
    }

您應該使用后台工作者。 您的異步代碼仍在主線程上運行。

像這樣...

    BackgroundWorker worker = new BackgroundWorker();
    public MainWindow()
    {
        this.DataContext = viewModel;
        InitializeComponent();
        Server_V2.AsyncService.runMain();
        worker.DoWork += Worker_DoWork;
        worker.RunWorkerAsync();
    }

    private void Worker_DoWork(object sender, DoWorkEventArgs e)
    {
        while (true)
        {
            //availabilityField.Text = Server_V2.AV.ToString();
            viewModel.Availability = Server_V2.AV.ToString();
            Thread.Sleep(500);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM