C# 如何以有效的方式将日志条目的不同部分着色到RichTextBox?

C# 如何以有效的方式将日志条目的不同部分着色到RichTextBox?,c#,wpf,mvvm,richtextbox,C#,Wpf,Mvvm,Richtextbox,我正在做一个测试程序,应该在屏幕上为用户显示记录的数据。我现在要做的是,在屏幕上显示消息后,处理每个消息,根据结果,消息的不同部分应以不同的颜色显示。如果我想使用MVVM模式,我应该怎么做?我的想法是使用RichTextBox,但我不确定如何捕捉实际的变化,然后只捕捉颜色部分 我的第一个想法是使用文本块。如果它与Message绑定,其中Message返回到目前为止记录的所有数据的字符串,我假设它不仅会更新消息字符串的更改,而且会更新所有记录的数据。当有很多日志条目时,这会非常低效吗

我正在做一个测试程序,应该在屏幕上为用户显示记录的数据。我现在要做的是,在屏幕上显示消息后,处理每个消息,根据结果,消息的不同部分应以不同的颜色显示。如果我想使用MVVM模式,我应该怎么做?我的想法是使用RichTextBox,但我不确定如何捕捉实际的变化,然后只捕捉颜色部分

我的第一个想法是使用文本块。如果它与Message绑定,其中Message返回到目前为止记录的所有数据的字符串,我假设它不仅会更新消息字符串的更改,而且会更新所有记录的数据。当有很多日志条目时,这会非常低效吗

        <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总体来说还是比较陌生的。

RichTextBox不适合日志查看器。在WPF中看到一个类似LogViewer的东西。谢谢!我去看看