富文本框,SelectionChanged处理程序和MVVM

时间:2011-12-19 15:52:27

标签: silverlight-4.0 richtextbox mvvm-light

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将按预期运行。

0 个答案:

没有答案