我基本上想要创建这样的东西:

因此,用户可以在列表中添加/删除项目,并在列表下方的红色面板中编辑它们。选择该项后,可以在面板中进行更改。
然后,可以使用下面的按钮之一保存或取消更改。如果不明确取消更改,用户将无法选择列表中的其他项目。
该怎么做呢?我只看到这样一个选项:将红色面板设置为单独的控件,并在ListView.SelectedItem更改时手动更改其DataContext。红色面板的DataContext是ListView项目的特殊包装,具有“保存”和“取消”选项。ListView被设置为IsEnabled = False,这样它的SelectedItem就不会在编辑过程中发生变化。
你会怎么做呢?
发布于 2012-07-18 16:47:20
例如,这个问题与这个问题非常接近:How do I stop binding properties from updating?
无论如何,处理这个问题的WPF对象是BindingGroup:
http://msdn.microsoft.com/en-us/library/system.windows.data.bindinggroup.aspx
发布于 2012-07-18 15:42:44
最简单的方法是使用一个对话框来编辑一个选定的项目。这就是我在我的项目中做的。我使用this dialogservice并处理结果。
如果希望在一个视图中处理所有内容,可以在设置SelecteItem时设置属性SelectionEnabled=false。然后在调用保存或取消命令时执行SelectionEnabled=true。
编辑面板的datacontext就是您的SelectedItem。
发布于 2013-07-31 05:04:21
您可以尝试将绑定与UpdateSourceTrigger=Explicit一起使用。博客文章Edit With Explicit UpdateSourceTrigger将为您提供有关如何实现此功能的更多信息。
https://stackoverflow.com/questions/11535233
复制相似问题