在Windows应用商店应用中设置DataContext时出现System.AccessViolationException

时间:2013-07-17 14:45:58

标签: c# windows-store-apps

我导航到一个新页面,在该页面上,我在页面加载事件上设置了DataContext

public MyPage()
{
  this.InitializeComponent();
  this.Loaded += MyPage_Loaded;

} 
void MyPage_Loaded(object sender, RoutedEventArgs e)
{
  this.DataContext= myModel;

}

在设置数据上下文时,很多时候我得到System.AccessViolation异常并且应用程序退出。

可能是什么问题?

修改

我试过了

1)将NavigationCacheMode设为Disabled

2)将页面设为基本页面,即删除继承自LayoutAwarePage

我仍然得到那个例外

1 个答案:

答案 0 :(得分:0)

您必须确保UI绑定的数据仅由UI线程更改。你可以像

这样的东西
    public static async Task RunOnUIThread(DispatchedHandler action)
    {
        await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, action);
    }