当文件更改时,在标题中显示通知星号(*)

时间:2015-11-10 08:39:48

标签: c# wpf xaml notifications inotifypropertychanged

我有一个带有文本文件编辑器的项目,但是我需要实现一个功能,在文件中有变化,它会在文件标题旁边的标题中显示星号(*),因此它通知用户那里的变化当您编辑xaml文件或编辑您获得(*)该文件被修改的代码时,Visual Studio中的文件...相同。

在光盘上修改文件时,是否有一些方法可以添加以执行此功能?

1 个答案:

答案 0 :(得分:0)

如果您使用的是MVVM,则可以使用依赖于另一个的属性。

更改IsDirty标志后,会在DecoratedTitle

上发出通知
class Document : INotifyPropertyChanged
{
    private bool isDirty;
    public bool IsDirty
    {
        get { return isDirty; }
        set
        {
            isDirty = value;
            OnPropertyChanged();
            OnPropertyChanged("DecoratedTitle");
        }
    }
    private String title;
    public String Title
    {
        get { return title; }
        set
        {
            title = value;
            OnPropertyChanged();
        }
    }
    public String DecoratedTitle
    {
        get { return title + (isDirty ? " (*)" : ""); }

    }
    private void OnPropertyChanged([CallerMemberName] string propName = null)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propName));
    }
    public event PropertyChangedEventHandler PropertyChanged;
}

然后你可以将窗口绑定到DecoratedTitle:

<Window Title="{Binding DecoratedTitle}"  >

此致