【问题标题】:AvalonEdit : TextstateAvalonEdit : 文本状态
【发布时间】:2015-10-28 11:58:34
【问题描述】:

如何在 Avalonedit 中确定该文本是否被修改?我想通知用户,文本修改已保存/未保存到文件中。

我试过这样的代码,但是IsModified 属性接缝是在TextChanged 事件发生之后设置的。所以我总是在前面的修改步骤中获得IsModified 的值。

this.TextEditor.TextChanged += (o, i) =>
{
   this.CurrentStatus = this.TextEditor.IsModified ? Status.FILENOTSAVED : Status.NONE;
};

【问题讨论】:

    标签: c# .net avalonedit


    【解决方案1】:

    IsModified 是一个依赖属性。您应该使用 WPF 数据绑定将其绑定到您的 CurrentStatus 属性,而不是手动进行。

    或者,使用DependencyPropertyDescriptor 来监听依赖属性的变化:

    var dpd = DependencyPropertyDescriptor.FromProperty(TextEditor.IsModifiedProperty, typeof(TextEditor));
    dpd.AddValueChanged(this.TextEditor, OnIsModifiedChanged);
    

    别忘了也使用RemoveValueChanged,否则你会leak memory

    【讨论】:

      猜你喜欢
      • 2011-04-28
      • 2015-06-19
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多