Control MainContent()
{
contentContainer = new Panel();
// set focus when the form is shown
Shown += delegate
{
SectionList.Focus();
};
SectionList.SelectedItemChanged += (sender, e) =>
{
try
{
var item = SectionList.SelectedItem;
Control content = item != null ? item.CreateContent() : null;
if (navigation != null)
{
if (content != null)
navigation.Push(content, item != null ? item.Text : null);
}
else
{
contentContainer.Content = content;
}
}
catch (Exception ex)
{
Log.Write(this, "Error loading section: {0}", ex.GetBaseException());
contentContainer.Content = null;
}
#if DEBUG
GC.Collect();
GC.WaitForPendingFinalizers();
#endif
};
if (Splitter.IsSupported)
{
var splitter = new Splitter
{
Position = 200,
FixedPanel = SplitterFixedPanel.Panel1,
Panel1 = SectionList.Control,
// for now, don't show log in mobile
Panel2 = Platform.IsMobile ? contentContainer : RightPane()
};
return splitter;
}
if (Navigation.IsSupported)
{
navigation = new Navigation(SectionList.Control, "Eto.Test");
return navigation;
}
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Platform must support splitter or navigation"));
}