手动修改或清除文本时,RichTextBox绑定断开

时间:2019-03-13 03:27:36

标签: c# wpf xaml mvvm richtextbox

我有一个绑定到字符串的RichTextBox

使用C#生成一个写入其中的字符串。

但是,如果我想通过单击RichTextBox并使用Backspace键将其删除,或者按Enter来换行来手动更改文本,则绑定会断开,并且我无法再以编程方式写入再次使用字符串。


XAML

<RichTextBox x:Name="rtbScriptView" 
             Margin="11,71,280,56" 
             Padding="10,10,10,48"
             FontSize="14" 
             Grid.ColumnSpan="1" 
             VerticalScrollBarVisibility="Auto" 
             RenderOptions.ClearTypeHint="Enabled"
             Style="{DynamicResource RichTextBoxStyle}">
    <FlowDocument>
        <Paragraph>
            <Run Text="{Binding ScriptView_Text, 
                                Mode=TwoWay, 
                                UpdateSourceTrigger=PropertyChanged}" />
        </Paragraph>
    </FlowDocument>
</RichTextBox>

查看模型

private string _ScriptView_Text;
public string ScriptView_Text
{
    get { return _ScriptView_Text; }
    set
    {
        if (_ScriptView_Text == value)
        {
            return;
        }

        _ScriptView_Text = value;
        OnPropertyChanged("ScriptView_Text");
    }
}

C#

ViewModel vm = new ViewModel();
DataContext = vm;

// Display a string in the RichTextBox

vm.ScriptView_Text = "This is a test."; // <-- This won't work if text is manually modified

0 个答案:

没有答案