我正在制作一个测试程序,应该在屏幕上为用户显示记录的数据。我现在要做的是处理每条消息,然后我将它呈现在屏幕上,根据结果,消息的不同部分应该以不同的颜色呈现。如果我想使用 MVVM 模式,我应该怎么做?我的想法是使用 RichTextBox,但我不确定如何捕捉实际变化,然后只对其中的部分进行着色。
我的第一个想法是使用 TextBlock。如果它与 Message 绑定,其中 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 整体还是很陌生。