- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
删除绑定(bind)集合中的所有项目后,datagrid.items.count为1,项目集合中唯一的项目是newitemplaceholder,但datagrid不显示newitemplaceholder。只有当最后一项是 newitemplaceholder 并且您尝试编辑它但没有按回车键而是单击触发删除事件的按钮时,才会发生这种情况。
由于 edit 事件,selecteditem 不再是 newitemplaceholder,因此该项目被认为是 sourcecollection 中的新项目。
在调用删除之前,数据网格中有一个 item.count 为 2。
对于如何让 newitemplaceholder 在这种奇怪的情况下出现有什么帮助吗?
最佳答案
我遇到过同样的问题,而且不仅在源集合计数为 0 时发生,而且在编辑状态中的任何最后一行都会发生 - 一旦从编辑状态中删除,网格底部的新记录行消失。我还没有发现比这更好的东西 - 非常粗鲁而且不是非常快速的解决方案,但至少它对我有用而且目前总比没有好。
给定名为 grItems 的 DataGrid,私有(private) View 模型引用 _vm 具有用于数据网格绑定(bind)的 Items 属性,示例代码可能如下所示:
<DataGrid Name="grItems"
ItemsSource="{Binding Path=Items}"
UnloadingRow="DataGridUnloadingRow">
和代码隐藏:
private void DataGridUnloadingRow(object sender, DataGridRowEventArgs e)
{
grItems.UnloadingRow -= DataGridUnloadingRow;
grItems.ItemsSource = null;
grItems.ItemsSource = _vm.Items;
grItems.UnloadingRow += DataGridUnloadingRow;
}
更新
后来我注意到当我们需要滚动网格时这不起作用 - 我收到一些内部 WPF 错误“偏移量和长度超出范围...”。早些时候,我每行都有一个删除按钮,该按钮绑定(bind)到在与项目列表相同级别上定义的命令。所以我不得不摆脱命令并在 View 中使用一些肮脏的技巧来隐藏代码——在从 View 模型集合中删除一个项目之前,我将焦点移到网格外的某个地方,并在删除后将焦点取回。据我了解,此技巧对新添加的行执行某种“提交”,并对未处于编辑状态的行执行删除操作。
关于wpf - Sourcecollection 计数为 0 newitemplaceholder 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3631279/
我有一个绑定(bind)到列表框的可观察集合。该集合有 2 个项目,但列表框显示 3 个项目(例如,实际上在可观察集合中的 2 个项目和 NewItemPlaceholder 的附加项目。 我希望它只
删除绑定(bind)集合中的所有项目后,datagrid.items.count为1,项目集合中唯一的项目是newitemplaceholder,但datagrid不显示newitemplacehol
我花了几天时间才找到这个简单问题的答案。我想在初始化新行时这样做,然后 NewItemPlaceholder 会立即出现。 NewItemPlaceholder 也称为空白行 - 用于将新项目添加到
我正在开发一个 WPF TabControl,其最后一项始终是添加新选项卡的按钮,类似于 Firefox: TabControl 的 ItemSource 绑定(bind)到一个 Observable
概览 我正在开发一个 WPF 应用程序(使用 .NET 4.5),其中一部分涉及在 DataGrid 中显示一些数据。 用户可以在 DataGrid 中添加新行并通过别处的按钮删除一行。 当用户开始添
这是我的数据模板:
跟踪DataGridRow.Item之后和 DataGridRow.IsNewItem属性,我发现:每个添加的项目(当 Source 为 ObservableCollection 时添加到 DataG
我是一个使用页面的向导式应用程序,用户可以通过 Next 和 Previous 按钮或使用导航栏直接访问某些页面在它们之间导航。 在一页上(我将其称为“网格页”),我有一个绑定(bind)到 Data
我是一名优秀的程序员,十分优秀!