Когда вы редактируете RichTextBox, вы изменяете элементы внутри элемента FlowDocument.Элемент, к которому вы привязали, вероятно, будет удален в какой-то момент во время этого редактирования.Взгляните на RichtTextBox.Document.Groups, чтобы увидеть, что происходит при редактировании RichTextBox.
Стандартный RichTextBox не очень хорошо поддерживает MVVM / Binding.Вы хотели бы иметь привязку к свойству Document, но это не поддерживается для RichTextBox по умолчанию.Вы могли бы посмотреть здесь .
Или расширить его самостоятельно, что-то вроде этого:
BindableRichTextBox class
public class BindableRichTextBox : RichTextBox
{
public static readonly DependencyProperty DocumentProperty = DependencyProperty.Register(nameof(Document), typeof(FlowDocument), typeof(BindableRichTextBox), new FrameworkPropertyMetadata(null, OnDocumentChanged));
public new FlowDocument Document
{
get => (FlowDocument)GetValue(DocumentProperty);
set => SetValue(DocumentProperty, value);
}
public static void OnDocumentChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
var rtb = (RichTextBox)obj;
rtb.Document = args.NewValue != null ? (FlowDocument)args.NewValue : new FlowDocument();
}
}
XAML
<controls:BindableRichTextBox Document="{Binding YourFlowDocumentObject, Mode=OneWay}"/>
Затем вы можете получить строку из FlowDocument.