2010-08-27 34 views
0

我有這樣的代碼C#/ WPF:爲什麼TabItem.IsFocused返回null

e.CanExecute = tabEditor.IsFocused; 

但在運行時,我得到一個空引用異常錯誤。但在文檔中,IsFocused只返回true或false,爲什麼會發生這種情況?順便說一句,tabEditor<TabItem>

回答

2

機會是,要麼etabEditor是空的,即,它們沒有分配給對象的任何地方(或以其他方式明確地分配給null)。如果代碼位於事件處理程序中,則有可能在調用事件處理程序時框架尚未初始化所有變量,在這種情況下,您可能需要檢查null。

+0

'tabEditor'爲null,但是爲什麼?代碼位於'Bold_CanExecute(對象發送者,CanExecuteRoutedEventArgs e)'中,而tabEditor引用我的XAML中的TabItem。你也可能從函數簽名中注意到我正在使用路由命令。我還注意到,我還沒有明確地調用該命令。錯誤是在應用程序啓動時產生的 – 2010-08-27 05:32:49

+0

我更新了我的答案。 – 2010-08-27 05:50:41