我設置在我的控制(在XAML)行爲,該行爲具有下面的代碼:WPF行爲的AssociatedObject爲空
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.Loaded += OnMycontrolLoaded;
AssociatedObject.Unloaded += OnMycontrolUnloaded;
}
private void OnMycontrolLoaded(object sender, RoutedEventArgs e)
{
AssociatedObject.MyEvent +=MyEventHandler;
}
protected override void OnDetaching()
{
base.OnDetaching();
AssociatedObject.Loaded -= OnMycontrolLoaded;
AssociatedObject.Unloaded -= OnMycontrolUnloaded;
}
當我創建的控制奇怪的事情幾種情況正在發生:調用OnMycontrolLoaded方法(即加載控件/ AssociatedObject),但在其內部AssociatedObject爲空。
爲什麼會發生?
任何機會'OnDetached'之前被調用?該控件是在UI中呈現還是在代碼中引用? – 2014-12-04 09:36:24
事件在OnDetaching中未註冊(請參閱編輯後),該控件顯示在UI中。 – 2014-12-04 10:47:17
您可以添加創建行爲並附加它們的xaml /代碼嗎? – 2014-12-04 11:31:29