【发布时间】:2020-02-19 12:26:48
【问题描述】:
我尝试在 avalon 停靠窗口中使用 NLog Viewer 将 nlog 异常打印到列表框
如果我尝试停靠窗口,则列表框将被清除,并且将窗口与列表框停靠回来也是如此。
我该如何解决这个问题?
xml 代码
<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 不会在公共版本中保存选项卡状态。
标签: c# wpf mvvm nlog avalondock