[英]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.