簡體   English   中英

窗口構造函數中TextBox的C#WPF可見性?

[英]C# WPF Visibility of a TextBox in window constructor?

我有一個帶有隱藏文本框的窗口類。 我正在使用帶有1個參數(字符串)的構造函數。 如果該參數=“ a”,我想使文本框可見。

  public partial class Window1 : Window
{
    public Window1(string x)
    {
        if(x == "a") this.TBOcena.Visibility = System.Windows.Visibility.Visible;
    }
}

但似乎我做錯了事,因為它不起作用。 我收到異常"An unhandled exception of type 'System.NullReferenceException'"

不知道如何解決它,甚至不知道在Google中尋找什么:/

XAML中對命名控件的所有引用都必須在調用InitializeComponent()之后完成。 是否在構造函數上取決於您

您可以在該構造函數中直接調用InitializeComponent方法:

public Window1(string x)
{
    InitializeComponent();
    if(x == "a") this.TBOcena.Visibility = System.Windows.Visibility.Visible;
}

或者您可以創建一個默認構造函數並調用它:

public Window1()
{
   InitializeComponent();
} 
public Window1(string x):base()
{
    if(x == "a") this.TBOcena.Visibility = System.Windows.Visibility.Visible;
}

對InitializeComponent()的調用(通常至少在Window和UserControl的默認構造函數中調用)實際上是對控件的部分類的方法調用(而不是我最初期望的那樣調用對象層次結構)。 您可以在本文中找到有關此方法的更多詳細信息: InitializeComponent()的作用是什么,以及它在WPF中如何工作?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM