如何在 Avalonedit 中确定该文本已被修改?我想通知用户,文本修改已保存/未保存到文件中。
我已经尝试过这样的代码,但是 IsModified
属性接缝是在 TextChanged
事件发生后设置的。因此,我总是为之前的修改步骤获取 IsModified
的值。
this.TextEditor.TextChanged += (o, i) =>
{
this.CurrentStatus = this.TextEditor.IsModified ? Status.FILENOTSAVED : Status.NONE;
};
最佳答案
IsModified
是一个依赖属性。您应该使用 WPF 数据绑定(bind)将其绑定(bind)到 CurrentStatus
属性,而不是手动执行。
或者,使用DependencyPropertyDescriptor
来监听依赖属性更改:
var dpd = DependencyPropertyDescriptor.FromProperty(TextEditor.IsModifiedProperty, typeof(TextEditor));
dpd.AddValueChanged(this.TextEditor, OnIsModifiedChanged);
不要忘记同时使用RemoveValueChanged
,否则您将leak memory .
关于c# - 阿瓦隆编辑 : Textstate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33390456/