【发布时间】:2017-07-25 11:04:09
【问题描述】:
编辑:我想将文本块的值更新为在另一个类上定期生成的随机变量的值。
我的实现阻止了应用程序中的其他功能(按钮)。有什么建议吗?
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));
}
}
【问题讨论】:
-
您应该将您尝试过的内容(代码)添加到答案中。即使它没有运行。不付出努力,你将得不到社区的帮助。
-
我可以看看你尝试了什么吗?您还指的是哪些其他实现?你能告诉我这个类以及你如何访问变量吗?您是否正在使用事件,因为它会定期更新?也许是一个计时器?
-
如果
AV是 Server_V2 类中的静态属性,请遵循此答案中给出的说明:stackoverflow.com/a/34763286/1136211 -
请添加您混淆的代码。
-
@Clemens 谢谢。这有很大帮助。我仍然遇到问题,因为文本块阻止了应用程序中的其他操作。 (见上面的代码)