替换 RichTextBox 内容绑定到空字符串
replace RichTextBox content binds to empty string
在 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");
}
}
场景:
RichTextBox 有内容
select 所有文本 (ctrl+A)
粘贴新文本
在 ViewModel 中,我在 set 方法上设置了断点,新的 Value
是空字符串。
这是正常行为还是错误?
你能试试这个并检查 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;
...
}
在 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");
}
}
场景:
RichTextBox 有内容
select 所有文本 (ctrl+A)
粘贴新文本
在 ViewModel 中,我在 set 方法上设置了断点,新的 Value
是空字符串。
这是正常行为还是错误?
你能试试这个并检查 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;
...
}