protected override void OnContentChanged() { base.OnContentChanged(); if (Content == null) { panel.Controls.Clear(); } else if (Content.GetType() == contentType && view != null) { view.Content = Content; } else { view = null; contentType = Content.GetType(); panel.Controls.Clear(); var viewType = MainFormManager.GetViewTypes(Content.GetType(), true).FirstOrDefault(t => typeof(DataAnalysisSolutionView).IsAssignableFrom(t)); if (viewType != null) { view = (DataAnalysisSolutionView)MainFormManager.CreateView(viewType); view.Locked = Locked; view.ReadOnly = ReadOnly; view.Dock = DockStyle.Fill; view.Content = Content; panel.Controls.Add(view); } } }