WPF控制可见性

时间:2013-07-28 03:36:59

标签: c# wpf

我是WPF的新手,我希望根据ComboBox值隐藏/显示一些控件,如TextBlock,ComboBox等。我没有运气就搜索了一些解决方案。我经常回答。

textbox1.Visibility = Visibility.Hidden;

所以,我试过这个。

    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;
        }
    }

这很简单不起作用。尝试我得到此错误{“对象引用未设置为对象的实例。”}

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

1 个答案:

答案 0 :(得分:1)

尝试将以下代码放入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;
    }
}