我迟到了,但在解决这类问题时试试这个。
您需要一个简单的属性来测试:在 ViewModel 中创建一个“Foo”属性(字符串)并将其绑定到 XAML(例如使用 TextBlock)。
在视图模型中
- 在“Get”中,返回一个硬编码字符串(例如:“Step 1”。这将验证“绑定”是否有效。
- 去掉“Get”硬代码,在构造函数的第一行放一个this.Foo =“Step 2”,这样会验证构造函数是否被调用
- 在调用被“回调”的地方放置第三组,这将检查 GetData 是否正在返回
- 在 if (error != null) 的 "else" 中,放第四组,以此类推...
示例:这是我的 MainViewModel 构造函数。
public MainViewModel(IDataService dataService)
{
this.Foo = "Step 2";
_dataService = dataService;
_dataService.GetData(
(item, error) =>
{
this.Foo = "Step 3";
if (error != null)
{
// Report error here
return;
}
else
{
this.Foo = "Step 4";
}
});
}
我的最后一个错误是我已经将从 GetData 返回的数据分配到“if (error != null){...}”中!所以它从来没有被调用过。
从那时起,我像这样重写构造函数:
public MainViewModel(IDataService dataService)
{
_dataService = dataService;
_dataService.GetData(
(item, error) =>
{
if (error == null)
{
// Normal code here
return;
}
else
{
// Report error here
return;
}
});
}