Here is simple app, which shows app crash on layout loading:
Exception thrown: 'System.NullReferenceException' in Xceed.Wpf.AvalonDock.dll
Additional information: Object reference not set to an instance of an object. (LayoutElement.Root == null)
at Xceed.Wpf.AvalonDock.Controls.LayoutItem.get_View() in Xceed.Wpf.AvalonDock\Controls\LayoutItem.cs:line 202
```
<Window x:Class="AvDockTestApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
mc:Ignorable="d" Title="MainWindow" Height="350" Width="525">
<Grid>
<xcad:DockingManager x:Name="DockingManager" AnchorablesSource="{Binding Pads}"/>
</Grid>
</Window>
```
```
public class Pad
{
}
public partial class MainWindow : Window
{
public IEnumerable<Pad> Pads { get; set; }
public MainWindow()
{
InitializeComponent();
Pads = new List<Pad>() { new Pad(), new Pad() };
DataContext = this;
Loaded += MainWindow_Loaded;
Closing += MainWindow_Closing;
}
private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
var layoutSerializer = new XmlLayoutSerializer(DockingManager);
layoutSerializer.Serialize("layout.xml");
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
var layoutSerializer = new XmlLayoutSerializer(DockingManager);
if (File.Exists("layout.xml"))
{
layoutSerializer.Deserialize("layout.xml");
}
}
}
```
Is there other valid way to load default layout on app startup?
Thanks.
Comments: Fixed in v3.1.
Exception thrown: 'System.NullReferenceException' in Xceed.Wpf.AvalonDock.dll
Additional information: Object reference not set to an instance of an object. (LayoutElement.Root == null)
at Xceed.Wpf.AvalonDock.Controls.LayoutItem.get_View() in Xceed.Wpf.AvalonDock\Controls\LayoutItem.cs:line 202
```
<Window x:Class="AvDockTestApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
mc:Ignorable="d" Title="MainWindow" Height="350" Width="525">
<Grid>
<xcad:DockingManager x:Name="DockingManager" AnchorablesSource="{Binding Pads}"/>
</Grid>
</Window>
```
```
public class Pad
{
}
public partial class MainWindow : Window
{
public IEnumerable<Pad> Pads { get; set; }
public MainWindow()
{
InitializeComponent();
Pads = new List<Pad>() { new Pad(), new Pad() };
DataContext = this;
Loaded += MainWindow_Loaded;
Closing += MainWindow_Closing;
}
private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
var layoutSerializer = new XmlLayoutSerializer(DockingManager);
layoutSerializer.Serialize("layout.xml");
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
var layoutSerializer = new XmlLayoutSerializer(DockingManager);
if (File.Exists("layout.xml"))
{
layoutSerializer.Deserialize("layout.xml");
}
}
}
```
Is there other valid way to load default layout on app startup?
Thanks.
Comments: Fixed in v3.1.