WPF控制可见性

本文关键字:可见性 控制 WPF | 更新日期: 2023-09-27 18:25:16

我是WPF的新手,我想根据组合框值从代码后面隐藏/显示一些控件,如TextBlock、ComboBox等。我一直在寻找一些没有运气的解决方案。我经常回答以下问题。

textbox1.Visibility=可见性。隐藏;

所以,我试了这个。

    private void cbBuscar_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        MessageBox.Show(cbBuscar.SelectedIndex.ToString());
        if (cbBuscar.SelectedIndex == 0)
        {
           cbProduto.Visibility = Visibility.Hidden;
        }
        else if (cbBuscar.SelectedIndex == 1)
        {
            cbProduto.Visibility = Visibility.Visible;
        }
        else if (cbBuscar.SelectedIndex == 2)
        {
            cbProduto.Visibility = Visibility.Collapsed;
        }
    }

它简单地不起作用。尝试获取此错误{"对象引用未设置为对象实例。"}

做我正在努力的事一定不难,实际上一定很容易。那么,有人能说出我做错了什么吗?

WPF控制可见性

尝试在cbBuscar_SelectionChanged函数中放入以下代码:

if (!IsLoaded)
    return;

如果在窗口初始化之前更改了选择,这可能会解决问题。

所以你的函数应该是这样的:

private void cbBuscar_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (!IsLoaded)
        return;
    MessageBox.Show(cbBuscar.SelectedIndex.ToString());
    if (cbBuscar.SelectedIndex == 0)
    {
       cbProduto.Visibility = Visibility.Hidden;
    }
    else if (cbBuscar.SelectedIndex == 1)
    {
        cbProduto.Visibility = Visibility.Visible;
    }
    else if (cbBuscar.SelectedIndex == 2)
    {
        cbProduto.Visibility = Visibility.Collapsed;
    }
}