0

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

有两种可能的情况:

  1. 对象通过数据库填充。在这种情况下,我不想调用 BeginEdit()。
  2. 对象通过用户的输入字段填充。在这种情况下,我想在更新源时自动调用 BeginEdit()(我使用双向绑定和 INotifyPropertyChanged)。

我正在考虑在属性更改时调用 BeginEdit() ,但这与第一种情况不符,因为我不希望在从数据库填充时调用 BeginEdit() 。

4

1 回答 1

0

您需要一种方法来确定对象群体的来源。enum可能会这样做,然后您可以检查导致属性更改的PropertyChanged原因,并基于此,您可以调用BeginEdit()或不调用。

Enum PopulateSource
{
   Database = 0,
   User
}

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

于 2010-02-18T15:54:02.507 回答