小编Jon*_*Jon的帖子

在选项卡控件中处理多个数据网格的正确方法是什么,以便在更改选项卡时单元格退出编辑模式?

在wpf中,我设置了一个标签控件,它绑定到一个对象集合,每个对象都有一个数据模板,数据网格显示数据.如果我选择一个特定的细胞,并把它进入编辑模式,转到另一个选项卡离开电网,这将导致异常下面要在返回数据网格抛出:

在AddNew或EditItem事务期间不允许"DeferRefresh".

看来该单元格从未离开编辑模式.是否有一种简单的方法可以将单元格从编辑模式中取出,或者是否还有其他功能?

更新:它看起来像如果我不绑定选项卡控件到数据源,而是明确定义每个选项卡,然后在数据源中的每个项目绑定到内容控制这个问题消失.这不是一个很好的解决方案,所以我仍然想知道如何将集合直接绑定到选项卡控件.

更新:所以我实际上为自己的解决方案所做的是使用ListView和内容控件来代替选项卡控件.我使用样式使列表视图看起来像.视图模型公开一组子视图模型,并允许用户通过列表视图选择一个.然后,内容控件呈现所选择的视图模型,并且每个视图模型具有包含数据网格的关联数据模板.通过此设置在视图模型之间切换,而在网格上的编辑模式下,将正确结束编辑模式并保存数据.

这是设置它的xaml:

<ListView ItemTemplate="{StaticResource MakeItemsLookLikeTabs}" 
          ItemsSource="{Binding ViewModels}"  
          SelectedItem="{Binding Selected}" 
          Style="{StaticResource MakeItLookLikeATabControl}"/>

<ContentControl Content="{Binding Selected}">
Run Code Online (Sandbox Code Playgroud)

我会接受Phil的答案,因为它也应该有效,但对我来说,上面的解决方案似乎在项目之间更容易移植.

wpf datagrid tabcontrol

20
推荐指数
2
解决办法
7421
查看次数

为什么包含头文件这么邪恶?

我已经看到很多关于何时使用前向声明而不是包含头文件的解释,但是很少有人解释为什么这样做很重要.我见过的一些原因包括:

  • 编译速度
  • 降低头文件管理的复杂性
  • 删除循环依赖项

来自.net背景我发现标题管理令人沮丧.我有这种感觉我需要掌握前向声明,但到目前为止我一直在报废.

为什么编译器不能为我工作并使用一种机制(包括)找出我的依赖关系?

前向声明如何加速编译,因为在某些时候引用的对象需要编译?

我可以购买降低复杂性的论据,但这样做的实际例子是什么呢?

c++ header-files forward-declaration

12
推荐指数
1
解决办法
2499
查看次数