繁体   English   中英

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

[英]UWP app, crash on this.Frame.Navigate

我有一个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 的对等导航教程对此进行了建模,并且找不到任何明显的不同。 我在这里可以找到的唯一类似问题是this ,但这似乎是由于我没有使用Template10软件包。

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

有谁知道为什么会这样?

编辑:要添加,如果我单击按钮将移动到当前页面,它将重新加载正常。 我也只是尝试将程序启动到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中的绑定。

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

<DataTemplate x:Key="System_DefaultItemTemplate"
                  x:DataType="local:SystemClass">
        <StackPanel>
            <TextBlock Text="{x:Bind Name}"/>
            <TextBlock Text="{x:Bind Site}"/>
        </StackPanel>
    </DataTemplate>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM