如何在Avalonedit中确定该文本被修改?我想通知用户,文本修改已保存/未保存到文件中。
我尝试过这样的代码,但IsModified
属性接缝是在TextChanged
事件发生后设置的。所以我总是得到之前修改步骤的IsModified
的值。
this.TextEditor.TextChanged += (o, i) =>
{
this.CurrentStatus = this.TextEditor.IsModified ? Status.FILENOTSAVED : Status.NONE;
};
IsModified
是一个依赖属性。您应该使用WPF数据绑定将其绑定到CurrentStatus
属性,而不是手动执行。
或者,使用DependencyPropertyDescriptor
来侦听依赖属性更改:
var dpd = DependencyPropertyDescriptor.FromProperty(TextEditor.IsModifiedProperty, typeof(TextEditor));
dpd.AddValueChanged(this.TextEditor, OnIsModifiedChanged);
别忘了同时使用RemoveValueChanged
,否则会泄露内存。