- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在玩BookShelf John Papa 的演示应用程序。
并且想对图书项目的编辑方式进行一些调整。在该应用程序中,BookView 和 EditBookWindow 都绑定(bind)到同一个 ViewModel BookViewModel ,这很好。
选择一本书将导致 EditBookWindow 在子窗口中打开
private void OnLaunchEditBook(LaunchEditBookMessage msg)
{
var editBook = new EditBookWindow();
editBook.Show();
}
private void OKButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
private Book _selectedBook;
public Book SelectedBook
{
get { return _selectedBook; }
set
{
_selectedBook = value;
RaisePropertyChanged("SelectedBook");
}
}
最佳答案
这与 this post 解决的问题相同。并且可以应用相同的解决方案。 :-)
简而言之,创建模型的副本,用它初始化您的详细 View 。或者,在 View 模型中保存模型的副本,并在按下取消时将其重置。或者在取消时从数据源重新加载项目。
编辑 :
如果你想使用 IEditableObject
您可以将模型保存在 BeginEdit
, 清除 EndEdit
上的保存状态, 并使用保存状态恢复 CancelEdit
上的原始状态. JavaScriptSerialize
的用法r 使创建备份副本变得非常容易。
使用 IEditableObject
只是一种变体,而不是完全不同的概念。使用 IEditableObject
它自己负责处理回滚机制的模型。在第一种方法中,ViewModel
负责。
如果您可以编辑 Model
使用 IEditableObject
很好,但通常你不能修改模型,例如如果您的模型是在访问 Web 服务时由代理生成的。
关于mvvm - Silverlight MVVM IEditableObject 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6512356/
我一直在寻求实现一个通用类,该类实现 IEditableObject 以便我的一些 ViewModel 继承,以便支持取消对该 ViewModel 中属性的编辑。它的主要用途是用于 WPF 中具有“确
晚上好 我在 .NET Windows Forms 项目中的 DataGridView 遇到了一点问题。网格是只读的并绑定(bind)到可排序的 BindingList其中包含自定义业务对象。我的业务
我在玩BookShelf John Papa 的演示应用程序。 并且想对图书项目的编辑方式进行一些调整。在该应用程序中,BookView 和 EditBookWindow 都绑定(bind)到同一个
IEditableObject 之间有什么区别?和 IRevertibleChangeTracking (都来自 System.ComponentModel 命名空间)?看起来第一个支持显式事务,而第
假设我有一个虚拟机,其中有一些实体作为属性。说人,地址,电话,....然后我想在 VM 上实现 IEditableObject,以便用户具有撤消功能。 实现请求的最佳方式是什么? 请提供演示代码。 最
我有一个绑定(bind)到 IEditableObject 集合的 DataGrid。 现在,当我在一个单元格中单击两次时,它将打开以进行编辑。 有趣的是:BeginEdit 会被调用两次。有时对于同
DataGridCheckBoxColumn 的默认行为是用户必须单击两次才能更改复选框值。在How to perform Single click checkbox selection in WPF
我是一名优秀的程序员,十分优秀!