我在窗口中定义了我的分组框,如下所示

<ScrollViewer>
    <Grid Name="gridMain">
        <GroupBox x:Name="grp" Header="Group" Margin="0,71,0,0">
            <Grid Margin="0,69,0,0" x:Name="gridmain">
                <CheckBox x:Name="ChkShow" Content="Hide Controls" IsChecked="True" Checked="ChkShow_Checked" Unchecked="ChkShow_Unchecked" Margin="27,52,76,38"></CheckBox>
                <Label x:Name="lblUsername" Content="Username" Margin="21,10,107,68" Visibility="Hidden"></Label>
            </Grid>
        </GroupBox>
    </Grid>
</ScrollViewer>


这是我的代码来显示/隐藏控件

private void ChkShow_Unchecked(object sender, RoutedEventArgs e)
{
    lblUsername.Visibility = Visibility.Hidden;
}

private void ChkShow_Unchecked(object sender, RoutedEventArgs e)
{
    lblUsername.Visibility = Visibility.Visible;
}


但是我无法找到它变为null的控件,所以如何解决这个问题

最佳答案

一切都与秩序有关。

首先创建CheckBox。附加了事件处理程序,并将值设置为True。事件处理程序将触发并尝试调用尚未创建的Label。因此,Label具有值null

如果将标签移到CheckBox上方,它将起作用。如果以后再附加事件处理程序,例如在OnLoad方法中,它也将起作用。

关于c# - 组框WPF中控件的可见性设置问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40416903/

10-10 13:47
查看更多