ユーザーのログデータを画面に表示するテストプログラムを作成しています。私が今やろうとしているのは、各メッセージが来るたびに処理することです。その後、メッセージのさまざまな部分が結果に応じてさまざまな色で表示される画面に表示します。MVVM パターンを使用したい場合、どうすればよいですか? 私の考えは RichTextBox を使用することでしたが、実際の変更をキャッチしてその部分のみを色付けする方法がわかりません。
私の最初のアイデアは、TextBlock を使用することでした。メッセージとバインドすると、メッセージはこれまでにログに記録されたすべてのデータの文字列を返します。メッセージ文字列の変更を更新するだけでなく、ログに記録されたすべてのデータを更新すると思います。多くのログエントリがある場合、これは非常に非効率的でしょうか?
<TextBlock
x:Name="logTxt"
Grid.Row="0" Grid.Column="0"
Text="{Binding Path=Message, UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap" Background="White"/>
代わりに RichTextBox を使用し、新しいデータでのみ更新する場合、XAML コードを使用してさまざまな部分に色を付けることができますか、それとも C# コードとして記述する必要がありますか? それはMVVMパターンに反することでしょうか? 私は解決策を探しましたが、C#とMVVM全体にまったく慣れていないため、これを明確にする説明が実際には見つかりませんでした。