在Silverlight中使用IEditableObject

时间:2009-08-14 16:49:41

标签: silverlight silverlight-3.0

我有一个对象,它实现了在绑定到Silverlight页面的viewmodel上公开的IEditableObject接口。

我如何/在哪里调用BeginEdit,CancelEdit和EndEdit方法?如何仅将实现此接口的对象约束到我的页面?

我没有使用DataGrid或DataForm控件。我正在使用Label,TextBox和DescriptionViewer控件来显示要编辑的数据。

1 个答案:

答案 0 :(得分:6)

我知道这是一个旧线程(但为了将来使用......)

我是这样做的:

每当当前项(例如CollectionViewSource)发生更改时,都会执行此操作:

void View_CurrentChanged(object sender, EventArgs e)
        {
            if (culturesView.Source != null)
            {
                ((IEditableObject)SelectedRecord).BeginEdit();
                RaisePropertyChanged("SelectedRecord");

            }
        }

每当我想保存(当前项目)时,我都这样做:

 private void Save()
{
 ((IEditableObject)SelectedRecord).EndEdit();
//do the actual saving to the dbms here ....

}

每当我要取消(当前更改)时,我都这样做:

private void Cancel()
{            
((IEditableObject)SelectedRecord).CancelEdit();
            //allthough we have canceled the editing we have to re-enable the edit mode (because
            //the user may want to edit the selected record again)
            ((IEditableObject)SelectedRecord).BeginEdit();

}

希望将来帮助某人!