如何在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/

10-10 22:29