c# - 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;
}
}
推荐阅读
- twilio - Twilio Studio Flow - 通话录音出错?
- c# - 1809 更新后 ContextFlyout 不工作
- python - 如何在 OPTION 和 VALUE OPTION e 选择中使用具有相同值的列表中的 ModelChoiceField?
- botframework - 错误:糟糕。有些事情不太对劲
- node.js - 将我的图像从 MS Graph 显示到 Azure Bot Services
- c++ - 使用 libgit2 在特定目录上调用 git diff
- python - XGBoost,处理贷款数据集的连续和固定数据
- c# - 单击时部分选择 DataGridView 单元格的文本
- python - Scikit-learn 混淆矩阵根据字符串表现不同
- java - Javacc:期待字符串文字之一