我使用以下代码从viewmodel关闭我的窗口。当方法变为异步时,代码似乎正常工作。异常本身是:调用线程无法访问此对象,因为另一个线程拥有它
在ViewModel中:
public Action CloseAction { get; set;}
并在View构造函数中:
private View()
{
InitializeComponent();
ViewModel vm = new ViewModel();
this.DataContext = vm;
if ( vm.CloseAction == null )
vm.CloseAction = new Action(this.Close);
}
调用命令在
下面完成private async void LoadGroups()
{
try
{
// Do stuff i.e. post some data
}
catch (System.Exception ex)
{
CloseWindow();
// Application.Current.Dispatcher.BeginInvoke(new Action(() => CloseWindow())); <-- Null exception
}
}
所以问题是如何使用上面的代码或任何其他替代方法有效地关闭wpf窗口。