Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么在我重做窗口时项目会消失?_C#_Wpf_Mvvm_Nlog_Avalondock - Fatal编程技术网

C# 为什么在我重做窗口时项目会消失?

C# 为什么在我重做窗口时项目会消失?,c#,wpf,mvvm,nlog,avalondock,C#,Wpf,Mvvm,Nlog,Avalondock,我尝试在avalon dock窗口中将nlog异常打印到列表框中 如果我尝试停靠窗口,列表框将被清除,并且将窗口停靠在列表框后面也是一样的 我怎样才能解决这个问题 xaml代码 <Grid> <StackPanel Margin="0,10"> <Grid Visibility="{Binding outputVisibility, UpdateSourceTrigger=PropertyChanged}">

我尝试在avalon dock窗口中将nlog异常打印到列表框中

如果我尝试停靠窗口,列表框将被清除,并且将窗口停靠在列表框后面也是一样的

我怎样才能解决这个问题

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>
更新


我还注意到,即使是一个带有文本的简单文本框,在dock out或dock in后也会被清除。我发现这个问题是xceed avalon dock社区版本

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

我用计算机解决了这个问题


据我所知,这是xceed项目的一个分支,但有更多的发展。我刚刚用nuget package manager下载了这个,并卸载了xceed avalon dock。现在,项目在dock in dock out后保存

可停靠窗格可能已重新加载。您应该使用数据绑定来持久化这些值。是的,它会被重新加载,因为xceed avalon dock不会在公共版本中保存选项卡状态。
<?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);
            }