C#UWP VS2017 ComboBox事件错误:无法激活Windows商店应用程序



我试图为UWP应用程序中的组合框创建一个事件处理程序,当我将值更改为某个项目时,表单上的一些控件会被隐藏。问题是,当我选择在不调试的情况下启动时,我会遇到一个错误:无法激活Windows商店应用程序。现在我不知道这是由代码还是其他原因引起的。当我从代码中删除事件时,问题就消失了,如果我只从事件处理程序中删除主体,问题仍然存在,所以我很确定问题不在主体中。

这是C#+XAML代码:

private void RoleComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (roleComboBox.SelectionBoxItem.ToString() == "Coach")
{
positionTextBlock.Visibility = Visibility.Collapsed;
positionComboBox.Visibility = Visibility.Collapsed;
}
}
<ComboBox x:Name="roleComboBox" HorizontalAlignment="Left" Margin="200,84,0,0" VerticalAlignment="Top" Width="140" SelectionChanged="RoleComboBox_SelectionChanged">
<ComboBoxItem IsSelected="True">-Choose a role-</ComboBoxItem>
<ComboBoxItem>Player</ComboBoxItem>
<ComboBoxItem>Coach</ComboBoxItem>
<ComboBoxItem>Trainer</ComboBoxItem>
</ComboBox>

我第一次认为这个问题是在VS2017(也尝试了2019(,并尝试了我在互联网上找到的许多关于这个问题的解决方案。在尝试了10多个小时的解决方案后(我从未想过问题出现在代码中,因为互联网上的所有问题都将其描述为调试器的问题(,我试图评论我编码的最后一部分,因为当时出现了问题,在此之前就不存在了。这解决了我的问题,所以我将错误定位到事件处理程序。

问题是,您将ComboBoxItem放置在ComboBox中,因此所选项目类型为ComboBoxItem,我们需要将其转换为ComboBoxItem,然后获得Content属性,如下所示。

private void RoleComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var item = roleComboBox.SelectedItem as ComboBoxItem;
var value = item.Content;
if ((roleComboBox.SelectedItem as ComboBoxItem).Content.ToString() == "Coach")
{
positionTextBlock.Visibility = Windows.UI.Xaml.Visibility.Collapsed;

}
}

最新更新