C# 为什么在我重做窗口时项目会消失?
我尝试在avalon dock窗口中将nlog异常打印到列表框中 如果我尝试停靠窗口,列表框将被清除,并且将窗口停靠在列表框后面也是一样的 我怎样才能解决这个问题 xaml代码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}">
<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);
}