为什么当我重新停靠 window 时项目会消失?

why do items disappear when i redock the window?

我尝试在 avalon dock window

中使用 NLog Viewer 将 nlog 异常打印到列表框

如果我尝试停靠 window 列表框将被清除,并且将 window 与列表框对接相同。

我该如何解决?

xaml代码

 <Grid>
        <StackPanel Margin="0,10">
            <Grid Visibility="{Binding outputVisibility, UpdateSourceTrigger=PropertyChanged}">
                <nlog:NlogViewer x:Name="logCtrl"  MinHeight="300" MinWidth="1000"/>
            </Grid>

            <Button Command="{Binding ConvertTextCommand}" Margin="5" Height="35">PrintException</Button>
            <Button Command="{Binding HideTextBoxCommand}" Margin="5">Hide</Button>
        </StackPanel>
    </Grid>

nlog 配置文件

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <extensions>
    <add assembly="NlogViewer" />
  </extensions>
  <targets>
    <target xsi:type="NlogViewer" name="ctrl" />
  </targets>
  <rules>
    <logger name="*" minlevel="Trace" writeTo="ctrl" />
  </rules>
</nlog>

我用它来模拟异常。

try
            {
                counter++;
                if (counter % 2 == 0)
                    throw new OutOfMemoryException();
                else throw new ArgumentOutOfRangeException();
            }
            catch (Exception ex)
            {
                Logger.Error(ex.StackTrace + " " + ex.Message);
            }

更新

我还注意到即使是带有文本的简单文本框也会在停靠或停靠后被清除

我发现问题出在 xceed avalon dock 社区版本上。

xceed github 项目中的可停靠窗格重新加载存在问题,他们添加了一个功能以在高级版本停靠后保留窗格中的信息。

我使用 Avalon Dock 解决了这个问题。

据我了解,这是 xceed 项目的一个分支,但有更多的发展。我刚刚用 nuget 包管理器下载了这个并卸载了 xceed avalon dock。现在项目在停靠停靠后保存