【问题标题】:How can I stop Silverlight DataForm immediately saving changes back to underlying object?如何停止 Silverlight DataForm 立即将更改保存回基础对象?
【发布时间】:2011-02-18 21:52:16
【问题描述】:

我有一个 Silverlight master-details DataForm,其中 DataForm 代表街道地址。

当我编辑 Address1 文本框时,一旦焦点离开文本框,值就会自动提交给绑定的 Address 对象。

如果我点击了Cancel 按钮,那么任何更改都将被撤消,因为Address 实现了IEditableObject 并保存了它的状态。

问题在于,由于任何更改都会立即传播到底层对象,因此它将在用户实际点击Save 之前显示在主网格中。我还有其他显示此数据的位置。这不是一个很好的用户体验。

我尝试了OneWay 绑定,但如果不手动复制所有字段,我将无法提交。

我唯一能想到的就是先创建一个数据的副本或者使用OneWay绑定,但是它们都显得有点笨拙。

DataForm 是否支持这种工作方式?

【问题讨论】:

    标签: silverlight datagrid silverlight-toolkit


    【解决方案1】:

    对象的副本感觉有点笨拙,但我会使用它:它正在重新成为 ASP.NET MVC 等系统的风格。

    然后,您也有很好的机会在将其提交到将传播到其他绑定控件的内容之前执行您想要的任何级别的验证。

    【讨论】:

    • 我希望我错过了一些东西 :-( 这似乎是总体上最安全的方式
    • 当然这不仅仅是一个 DataForm 问题。例如,制作对象的副本有助于解决普通旧文本框的这个问题。只是因为 DataForm 的工作方式对 IEditableObject 等接口很智能,我希望有一种方法可以让它工作,因为它会在某些情况下帮助我
    猜你喜欢
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    相关资源
    最近更新 更多