UWP:无法从代码隐藏中访问菜单复选框

UWP:无法从代码隐藏中访问菜单复选框,uwp,Uwp,我创建了一个包含3个复选框的菜单:“menuRefreshFast”、“menuRefreshMedium”和“menuRefreshSlow” 当我加载应用程序时,我可以看到GUI正在做正确的事情。但是,当我尝试使用x:Name引用这些复选框时,它无法识别它们!有人能给我解释一下原因吗 我不这样做,这样就可以直接访问ControlTemplate中的项目,但作为一个简单的解决方案,您可以做的是,在复选框的加载事件中,您可以将该对象保存为以下内容: <CheckBox x:Name="

我创建了一个包含3个复选框的菜单:“menuRefreshFast”、“menuRefreshMedium”和“menuRefreshSlow”


当我加载应用程序时,我可以看到GUI正在做正确的事情。但是,当我尝试使用x:Name引用这些复选框时,它无法识别它们!有人能给我解释一下原因吗


我不这样做,这样就可以直接访问ControlTemplate中的项目,但作为一个简单的解决方案,您可以做的是,在复选框的加载事件中,您可以将该对象保存为以下内容:

<CheckBox x:Name="menuRefreshFast" Content="Fast (250ms)" Click="menuRefreshFast_Click" Tag="menuRefreshFast" Loaded="menuRefreshFast_Loaded"/>

private CheckBox menuRefreshFast;
private void menuRefreshFast_Loaded(object sender, RoutedEventArgs e)
{
   menuRefreshFast = sender as CheckBox;
}

私有复选框menuRefreshFast;
已加载私有无效菜单FreshFast_(对象发送方、路由目标方)
{
menuRefreshFast=发件人作为复选框;
}

您不能直接使用控件名称从页面代码隐藏处访问XAML ControlTemplate中的控件。定义用作控件的控件模板的元素树,其子元素不会公开给页面,从而使您可以从页面的代码隐藏处访问它。一般来说,我们使用这个课程,你可以在网上找到更多关于它的信息。在本例中,您还可以使用@Dishant的方法获取复选框

但是如果您想使所选项目相互排斥,我建议您使用,您可以对单选按钮进行分组,以使用户在单选按钮组中只能选择一个单选按钮。请参见使单选按钮成组工作的部分

下面是基于上述代码的示例代码



您能简要介绍一下为什么要从代码隐藏中访问复选框吗?@Dishant我想选中一个复选框以取消选中其他两个复选框。谢谢,单选按钮对我来说效果很好!我将不得不花一些时间研究你提到的控件模板的东西,但在此期间,这会以最简单的方式完成工作。谢谢你的解决方法。我曾在我研究过的其他网站上看到人们使用它,但我试图避免这种方式,因为它不是最干净的。然而,我可能不得不用这种方式来修复其他一些代码。
<CheckBox x:Name="menuRefreshFast" Content="Fast (250ms)" Click="menuRefreshFast_Click" Tag="menuRefreshFast" Loaded="menuRefreshFast_Loaded"/>

private CheckBox menuRefreshFast;
private void menuRefreshFast_Loaded(object sender, RoutedEventArgs e)
{
   menuRefreshFast = sender as CheckBox;
}