Похоже, что ModelCheck
- единственный класс, в котором вы не указали доступ для получения и установки ({ get; set; }
). Я предполагаю здесь, но может ли это быть проблемой?
После некоторого промедления я наконец приступил к написанию кода решения моей исходной проблемы.
В моем решении используется пользовательский TraceListener
(первоначально предложенный Джоном), который регистрируется в окно вывода. Окно вывода автоматически отображается и выводится на передний план при возникновении ошибки.
Вот мой TraceListener
:
public class ErrorLogTraceListener : TraceListener
{
public override void Write(string message)
{
...
}
public override void WriteLine(string message)
{
...
}
}
TraceListener
определен в System.Diagnostics.
Пользовательский TraceListener
должен быть подключен к системе, которая будет использоваться. Официальный способ сделать это - установить что-то в реестре, а затем использовать файл App.config
для настройки TraceListener
.
Однако я обнаружил, что есть гораздо более простой способ сделать это программно:
ErrorLogTraceListener listener = new ErrorLogTraceListener();
PresentationTraceSources.Refresh();
PresentationTraceSources.DataBindingSource.Listeners.Add(listener);
PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Error;
PresentationTraceSources
также определен в System.
Просмотрите эту статью блога , которая может помочь обойти эту проблему.