UWP应用,在this.Frame.Navigate上崩溃

时间:2018-08-06 13:17:31

标签: c# uwp

我有一个UWP应用,其中有两个页面:MainPage和EventPage。在这两个位置上都有一个splitView,在它的顶部是一个带有两个按钮的GridView-一个导航到MainPage,另一个导航到EventPage。按钮的XAML如下所示:

<Button Content="Browse by system" 
        HorizontalAlignment="Center" 
        Margin="0,0,0,0" 
        VerticalAlignment="Top"
        Width="250"
        Click="SystemButtonClick"/>

但是,当我按下“按系统浏览”按钮时,应用程序崩溃了。这是页面的构造函数:

public EventPage()
    {
        this.InitializeComponent();
        var systemList = SystemClass.GetSystems();
        systemList.Sort();
        Systems = new ObservableCollection<string> (systemList);
    }

它可以很好地通过构造函数,而在退出按钮单击的事件处理程序时崩溃:

 private void SystemButtonClick(object sender, RoutedEventArgs e)
    {
        this.Frame.Navigate(typeof(EventPage));
    }

我已经根据Microsoft的Peer-to-peer navigation教程对此进行了建模,但没有发现任何明显的不同。我在这里可以找到的唯一类似问题是this,但这似乎是由于我没有使用Template10软件包。

当崩溃确实发生时,它将转到App.g.i.cs文件,并抱怨未将调试器配置为调试此未处理的异常。

有人知道为什么会这样吗?

编辑:要添加,如果单击按钮移至当前页面,它将重新加载正常。我还尝试过将程序启动到EventPage,这也提示崩溃。

EDIT2:经过进一步测试,似乎我找到了崩溃的根源,尽管我不了解它。

在EventPage类的开头,我有一些变量:

public sealed partial class EventPage : Page
{
    private ObservableCollection<EventBin> EventCollection;
    private ObservableCollection<String> Systems;
    public EventPage()
    {
        this.InitializeComponent();
        Systems = SystemClass.GetSystems();
    }

当我分配Systems变量时,似乎发生了麻烦。对于其他页面,我使用相同的操作但使用了不同的变量,这不会发生。唯一的区别是在MainPage中,它是自定义类而不是字符串的ObservableCollection。

如果我这样重新初始化System变量:

var Systems = SystemClass.GetSystems();

它可以运行,但是没有连接到XAML中的绑定。

1 个答案:

答案 0 :(得分:0)

因此,事实证明,问题在于我已将自定义类型绑定到数据模板中的列表,然后尝试将其输入纯字符串。

select sl.* 
from [dbo].[LMT2_ServerLicenseUser] sl
where convert(date, startdate, 103) >= @fromdate and
      convert(date, startdate, 103) <= @todate;

由于这些字符串显然没有任何Name或Site属性,因此崩溃了。