替换RichTextBox内容绑定到空字符串

时间:2016-05-26 22:18:57

标签: wpf binding richtextbox

在WPF(.Net 4.5)中,我的xaml中有RichTextBox

    <RichTextBox Height="40" Width="100">
        <FlowDocument>
            <Paragraph>
                <Run Text="{Binding TestRichTextBox}"/>
            </Paragraph>
        </FlowDocument>
    </RichTextBox>

in和ViewModel我有这个属性

string testRichTextBox;
public string TestRichTextBox
{
    get { return testRichTextBox; }
    set 
    {
        if (testRichTextBox == value)
            return;
        testRichTextBox = value;
        onPropertyChanged("TestRichTextBox"); 
    }
}

场景:

  1. RichTextBox包含内容

  2. 选择所有文字(ctrl + A)

  3. 粘贴新文字

  4. 在ViewModel中

    我在set方法上有断点,新的Value是空字符串。

    这是正常行为还是错误?

1 个答案:

答案 0 :(得分:-1)

您可以试试这个并检查var text是否返回任何值?

public Window1()
{
    InitializeComponent();

    // "tb" is a richtextBox
    DataObject.AddPastingHandler(tb, OnPaste);
}

private void OnPaste(object sender, DataObjectPastingEventArgs e)
{
    var isText = e.SourceDataObject.GetDataPresent(DataFormats.UnicodeText, true);
    if (!isText) return;

    var text = e.SourceDataObject.GetData(DataFormats.UnicodeText) as string;
    ...
}