c# - 下载viewModel后如何调用函数?

标签 c# mvvm windows-phone-8 binding async-await

我开始搜索,完成后我完成了 viewModel,如果我没有找到任何东西,我想显示一条消息。

到目前为止,我有 3 种方法:

1.) 转换App.ViewModel.LoadData()到异步等待方法,然后开始我的功能。

2.) 做类似的事情,但有一个功能:

void NewSearch_Loaded(object sender, RoutedEventArgs e)
{
    Binding binding = new Binding("IsLoadingJobs") { Source = DataContext };
    BindingOperations.SetBinding(
        prog, ProgressIndicator.IsIndeterminateProperty, binding);
}

3.) 黑客攻击。

1. 方法没有那么好用,因为我以前从未使用过 async-await 并且它看起来并不容易。
2. 方法听起来更容易,但我找不到任何“绑定(bind)”来启动函数。
hacking 方法很容易,但不是很好:在 viewModel 中,我看到我得到一个空数组,可以填写 1 个特殊的触发词或其他东西,然后在 View 端用 if 询问这个词。会工作,但我不喜欢那样。

有任何想法吗?

最佳答案

首先,警告:不要写async void LoadDataAsync ,写async Task LoadDataAsync反而。也不要忘记添加Async到你的功能结束。

现在,您应该具有指示搜索/加载是否正在进行以及是否完成的属性。这些通常用于切换某些 UI 元素的可见性,例如进度条或消息“未加载任何内容”。

这是一个干净的、基于 MVVM 的模式,用于显示正在进行的操作指示器以及显示操作已完成。而且没有结果。

关于c# - 下载viewModel后如何调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22199939/

相关文章:

c# - 如何将 BitmapImage 从后台线程传递到 WPF 中的 UI 线程?

c# - 在 ItemsControl 中移动行为

windows-phone-8 - await DisplayActionSheet(...) 立即返回 null

c# - 通过 Cruise Control 发布 MVC v1 C# 应用程序

c# - 从 ViewMode/Viewl MVVM 发出保存模型

javascript - knockout 不更新 View 中的值

android - 是否可以仅更新移动平台上应用程序的某些部分?

c# - ASP.Net运行时添加控件问题

c# - 从 TPL 任务向 WPF View 报告进度的适当方法是什么?

c# - 使用 Excel DNA 将 Microsoft Scripting Runtime 字典从 VBA 传递到 C#