0

ログを 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 にログを書き込むにはどうすればよいでしょうか?

4

1 に答える 1