如何在DataRow上覆盖/隐藏SetModified方法?

时间:2011-03-28 14:19:07

标签: c# inotifypropertychanged datarow

我正在尝试在RowState对象的DataRow属性上实现更改通知。

这是我到目前为止所做的,但我的SetModified方法永远不会被调用:

internal class DataRowEx : DataRow, INotifyPropertyChanged
{
    #region Events
    public event PropertyChangedEventHandler PropertyChanged;
    #endregion

    #region Construction
    public DataRowEx(DataRowBuilder builder)
        : base(builder)
    { }
    #endregion

    #region Overrides
    protected new void SetModified()
    {
        base.SetModified();
        PropertyChanged(this, new PropertyChangedEventArgs("RowState"));
    }
    #endregion
}

我想我可以把它变成内部并且从包含该行的对象中自己调用它,但我觉得应该有更好的方法。

1 个答案:

答案 0 :(得分:2)

DataTableDataRow一起使用,因此永远不会在SetModified()中调用DataRowEx(它“隐藏”继承的成员,它不会覆盖它)。

实现所需内容的最简单方法可能是实现自定义DataTable,覆盖OnRowChanging()OnRowChanged(),并委托DataRowEx中的自定义功能从那里。