WPF:更新绑定源时是否可以自动调用BeginEdit(IEditableObject)?

时间:2010-02-18 15:39:14

标签: wpf binding ieditableobject

我有一个实现IEditableObject的类,现在我想知道在更新绑定源时是否可以自动调用BeginEdit()?

有两种可能的情况:

  1. 通过数据库填充对象。在这种情况下,我不想调用BeginEdit()。
  2. 用户通过输入字段填充对象。在这种情况下,我想在更新源时自动调用BeginEdit()(我使用双向绑定和INotifyPropertyChanged)。
  3. 我正在考虑在属性发生变化时调用BeginEdit(),但这与第一个场景不相符,因为我不希望在从数据库填充时调用BeginEdit()。

1 个答案:

答案 0 :(得分:0)

您需要一种方法来确定对象总体的来源。 enum可以执行此操作,然后在PropertyChanged中,您可以查看导致该属性更改的原因,并根据该属性,您可以调用BeginEdit()

Enum PopulateSource
{
   Database = 0,
   User
}

现在从数据库更新时,将您的枚举设置为PopulateSource.Database。当它因用户更改而发生更改时,您将其设置为PopulateSource.User。现在,您可以在PropertyChanged中检查此变量的状态,从而确定是否要调用BeginEdit()