I managed, after sleeping on it, to find a solution that works best. I'll post it here for anyone else who happens along.
Our main window has the 'top level' dock in which all other forms (panes) load when the user clicks the specific button. For example, if they wish to search for products, they click the 'Search Products' button and the pane is loaded within the main dock.
That dock has a PreviewClose event on it. I just created a delegate that the loaded pane subscribes to. Then, when the pane is closed, however it is closed, I check to see if that pane had subscribed, and if so, then handle it. I also removed the RadDocking from the pane, since it was not needed. below is the code in the MainWindow:
public delegate bool HandlePaneClosing();
public event HandlePaneClosing HandlePaneClosingEvent;
private void radDocking_PreviewClose(object sender, Telerik.Windows.Controls.Docking.StateChangeEventArgs e)
if(HandlePaneClosingEvent != null)
e.Handled = true;
The pane itself has this in its constructor:
MainWindow = (MainWindow)Application.Current.MainWindow;
if (MainWindow != null)
MainWindow.HandlePaneClosingEvent += HandleSave;
Pretty simple, once I actually thought about it.