如何在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
,否则您将leak memory。关于c# - AvalonEdit:文本状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33390456/