1. 程式人生 > >WPF - 無法對元素“TextBox”設定 Name 特性值“TB2”

WPF - 無法對元素“TextBox”設定 Name 特性值“TB2”

ERROR:無法對元素“TextBox”設定 Name 特性值“TB2”。“TextBox”在元素“UserControl1”的範圍內,在另一範圍內定義它時,已註冊了名稱。

原因:UserControl內部的元素無法在外部命名。這裡的UserContrl,泛指繼承自其他控制元件,並且帶有xaml檔案的自定義控制元件,無論繼承自何控制元件。也就是說,出現在自定義控制元件xaml中的元素,無法在外部命名。

引申BUG:這型別的元素繫結到外部控制元件時會失效(即編譯執行沒問題,僅不起作用)。

解決方案:不要使用自定義控制元件(無論繼承什麼控制元件),直接新建Class,直接繼承想要繼承的控制元件,不帶xaml,xaml中結構在cs檔案中用程式碼實現。注意兩者的區別:自定義控制元件預設建構函式有InitialComponent()方法,而繼承控制元件則沒有(直接使用父類的預設建構函式中的該方法)。