ログを ViewModel に書き込みたいので、ログをユーザーに公開できます。
まず、View を ViewModel にバインドします
<TextBox Grid.Row="1" TextWrapping="Wrap" Text="{Binding Logger}" AcceptsReturn="True" IsReadOnly="True"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
これはビューモデルです
private string logger;
public string Logger
{
get { return logger; }
set
{
logger = value;
this.RaisePropertyChanged("Logger");
}
}
次に、ILoggerFacade を実装するカスタマー ロガー クラスを作成し、Bootstrapper で CreateLogger メソッドをオーバーライドします。
ブートストラップで
protected override ILoggerFacade CreateLogger()
{
return new MainLogger();
}
カスタマー ロガー クラスで
public class MainLogger : ILoggerFacade
{
public void Log(string message, Category category, Priority priority)
{
string messageToLog = String.Format(System.Globalization.CultureInfo.InvariantCulture, "{1}: {2}. Priority: {3}. Timestamp:{0:u}.", DateTime.Now, category.ToString().ToUpper(System.Globalization.CultureInfo.InvariantCulture), message, priority.ToString());
//////??????//////
}
}
そして、何を記入する必要がありますか???????. Import IEventAggregator を試して、ViewModel にデータを公開し、ここで ViewModel を直接インポートしました。コンテナーが登録される前に CreatorLogger メソッドが呼び出されるため、どちらも機能しません。では、ViewModel にログを書き込むにはどうすればよいでしょうか?