SL 4 app。我们在一个更大的控件中有一个RichTextBox(来自Silverlight Toolkit)。当文本框中的选择发生变化时,我们需要根据选择的格式更新其他一些控件 需要从ViewModel更新控件,因此我们从SelectionChanged处理程序向适当的ViewModel发送MVVM Light消息。
void RichTextBox_SelectionChanged(object sender, RoutedEventArgs e)
{
RichTextBox rtb = sender as RichTextBox;
if (null != rtb && rtb.Selection.Text.Length > 0)
{
Messenger.Default.Send(new UpdateTextFormatUiFromSelectedText() { Xaml = (sender as RichTextBox).Selection.Xaml.ToString()});
}
}
不幸的是,在发送消息后,选择将丢失,光标将转到文本的开头。处理UpdateTextFormatUiFromSelectedText消息的例程不会更改RTB。
任何有关正在发生的事情的见解都将受到赞赏......
更新:如果未调用Messenger.Default.Send(),则RTB将按预期运行。