WP7 应用程序终止,无一例外,数据绑定

本文关键字:无一例外 数据绑定 终止 应用程序 WP7 | 更新日期: 2023-09-27 18:36:47

我有和应用程序,我在启动时发出多个HttpRequests。在我尝试将许多 UI 处理移动到不同的类以尝试成为更多的 MVVM 应用程序之前,它工作正常。现在,当我用数据加载页面时,我的应用程序崩溃/终止,没有异常。

此终止的主要来源(我相信)是我为应用程序的 RootFrame 设置 ViewModel 的位置,以便我可以在我的 xaml 绑定中引用它的类。

    (App.Current as App).RootFrame.DataContext = (App.Current as App).ViewModel;

如果没有这个,应用程序将启动,但随后我的数据都不会绑定到页面。我猜有一些异步 Http 调用在尝试将该 ViewModel 设置为根框架的数据上下文的同时正在更改 ViewModel。我不确定这是否会导致这种终止,但我只是猜测。

我很确定这部分是导致错误的原因,因为在应用程序关闭后,这是输出:

    'UI Task' (Managed): Loaded 'mscorlib.dll'
    'UI Task' (Managed): Loaded 'System.Windows.RuntimeHost.dll'
    'UI Task' (Managed): Loaded 'System.dll'
    'UI Task' (Managed): Loaded 'System.Windows.dll'
    'UI Task' (Managed): Loaded 'System.Net.dll'
    'UI Task' (Managed): Loaded 'System.Core.dll'
    'UI Task' (Managed): Loaded 'System.Xml.dll'
    'UI Task' (Managed): Loaded ''Applications'Install'CCB2E631-D1D5-4AB0-B253-7B6CF6367D16'Install'ParkQuest.dll', Symbols loaded.
    'UI Task' (Managed): Loaded 'Microsoft.Phone.dll'
    'UI Task' (Managed): Loaded 'Microsoft.Phone.Interop.dll'
    'UI Task' (Managed): Loaded 'Microsoft.Xna.Framework.dll'
    'UI Task' (Managed): Loaded ''Applications'Install'CCB2E631-D1D5-4AB0-B253-7B6CF6367D16'Install'Facebook.dll'
    'UI Task' (Managed): Loaded ''Applications'Install'CCB2E631-D1D5-4AB0-B253-7B6CF6367D16'Install'System.Windows.Interactivity.dll'
    'UI Task' (Managed): Loaded ''Applications'Install'CCB2E631-D1D5-4AB0-B253-7B6CF6367D16'Install'Microsoft.Expression.Interactions.dll'
    'UI Task' (Managed): Loaded 'System.Runtime.Serialization.dll'
    'UI Task' (Managed): Loaded ''Applications'Install'CCB2E631-D1D5-4AB0-B253-7B6CF6367D16'Install'Microsoft.Phone.Controls.Toolkit.dll'
    The thread '<No Name>' (0x1af811be) has exited with code 0 (0x0).
    The thread '<No Name>' (0x1ada0ebe) has exited with code 0 (0x0).
    The thread '<No Name>' (0x1a9c105a) has exited with code 0 (0x0).
    The program '[457643138] UI Task: Managed' has exited with code 0 (0x0).

仅供参考,我的启动对象不是问题,正如我所看到的那样。

提前感谢您的有用建议,如果您认为我应该有更好的方法来实现我的数据绑定,请告诉我。

此外,如果您需要任何其他可以帮助您回答此查询的信息,请随时询问。

WP7 应用程序终止,无一例外,数据绑定

我想你可能在时间上遇到了一些问题......

也许你应该实现一些基本的日志记录(请求开始和结束,...)以更好地了解问题。

我看到了使用 WebClient 和不同并行请求的一些问题,也许您应该检查一下。据我所知,WebClient 回调使用 UI 威胁,当它发生在早期时(可能是当您的 VM 启动请求并启动到早期时)时,这也可能是个问题......

我不知道

这是否有帮助,但我通常在后面的代码中执行此操作以设置视图的视图模型。

public MainPage()
{
    InitializeComponent();
    MainPageVMProperty = new ViewModels.MainPageViewModel();
}
public ViewModels.MainPageViewModel MainPageVMProperty { get; set; }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    LayoutRoot.DataContext = MainPageVMProperty;
}