我有RichEditBox和DependencyPropert的类:
public class RichTextC : DependencyObject
{
public static string GetRichText(DependencyObject obj)
{
return (string)obj.GetValue(RichTextProperty);
}
public static void SetRichText(DependencyObject obj, string value)
{
obj.SetValue(RichTextProperty, value);
}
public static readonly DependencyProperty RichTextProperty = DependencyProperty.Register("RichText", typeof(string), typeof(RichTextC), new PropertyMetadata(string.Empty, callback));
private static void callback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var reb = (RichEditBox)d;
reb.Document.SetText(TextSetOptions.FormatRtf, (string)e.NewValue);
}
}这是我在XAML文件中的RichEditBox:
<RichEditBox local:RichTextC.RichText="{Binding MyRichText, Mode=TwoWay}"/>问题是,视图可以由视图模型通知,但是当我在RichEditBox中更改文本时,它不会通知视图模型。我的意思是,绑定只在一个方面起作用,从一个视图模型到另一个视图,但是从视图到视图模型不起作用。
如何将其改为双向绑定开始工作?
发布于 2015-03-11 08:34:18
因为我不能评论,所以我必须重写我的答案!
<local:RichTextBoxExtended RtfText="{Binding MyRichText, Mode=TwoWay}"/>希望这能帮上忙..。
发布于 2015-03-08 05:55:12
当RichEditBox的文档文本发生更改时,您需要连接代码来设置RichText属性。为此,请处理RichEditBox.TextChanged事件以更新RichText属性。您需要包含一些代码,以防止RichText属性在处理TextChanged事件时更新RichEditBox的文档文本(反之亦然)以防止循环。
https://stackoverflow.com/questions/28909808
复制相似问题