我創建了一個FilteredComboBox
,它來源於標準的WPF comboBox
。這個新的UserControl
到目前爲止在其設計的原始測試應用程序中工作良好。 現在,我已經複製類到試圖訪問PART_EditableTextBox
孩子ComboBox
的時候我得到空引用例外我的主要應用:GetTemplateChild在不同的項目中返回null
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
EditableTextBox.SelectionChanged += EditableTextBox_SelectionChanged;
ItemsPopup.Focusable = true;
}
private TextBox EditableTextBox
{
get { return (TextBox)GetTemplateChild("PART_EditableTextBox"); }
}
在我想要的線路出現問題添加一個SelectionChanged
事件。如果做一些研製它總是建議等到ApplyTemplate
完成它基本上在base.OnApplyTemplate();
做我查了基礎模板在我的主要應用程序,它應該包含PART_EditableTextBox
。
任何想法可能是錯誤的地方或我可以做什麼進一步調查?
更新:我檢查了一些澤維爾的建議後發現問題。與PART_EditableTextBox的問題是,它是當ComboBox被定義爲
IsEditable = True
這我必須承認並沒有在我提到的第二個項目的情況下才有效。如果ComboBox不可編輯,那麼它根本不具有EditableTextBox: -/
感謝您的支持傢伙...
該代碼看起來不錯。只是瘋狂的猜測,也許'PART_EditableTextBox'是變量名,所以正確的代碼應該是'GetTemplateChild(PART_EditableTextBox);' – kennyzx