我正在制作一个测试程序,该程序应该在屏幕上为用户显示记录的数据。我现在要做的是处理每条消息,然后我将它呈现在屏幕上,消息的不同部分应根据结果以不同的颜色呈现。如果我想使用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整体都是新手。