WPF数据网格允许用户添加行?

Posted

技术标签:

【中文标题】WPF数据网格允许用户添加行?【英文标题】:WPF datagrid allow user to add rows? 【发布时间】:2011-01-04 19:50:42 【问题描述】:

我希望绑定到我的可观察集合的 WPF Datagrid 在底部有空白行,以便用户可以添加更多信息。我已经成功绑定了数据,即可以看到了。

为什么没有显示“新”空白行?这是我的 xaml 声明:

<UserControl.Resources>
  <CollectionViewSource x:Key="MyItems" Source="Binding Path=AllItems">
  </CollectionViewSource>
</UserControl.Resource>

<my:DataGrid HorizontalAlignment="Stretch"
  AutoGenerateColumns="True"
  SelectionUnit="FullRow"
  CanUserAddRows="True"
  CanUserDeleteRows="True"
  DataContext="StaticResource MyItems"
  ItemsSource="Binding">

PS:我正在使用Josh Smith's MVVM implementation。我也读过一些关于这个问题的 SO posts 而they 没有helped。

提前致谢。

2010-01-14 更新:

当用户控件加载事件发生时,“CanUserAdddRows”为假。我怀疑这与here 列出的条件有关。

【问题讨论】:

【参考方案1】:

发现问题。我的 ObservableCollection 对象中的构造函数未声明为 public。

*击中头部*

感谢您的宝贵时间。

【讨论】:

【参考方案2】:

确保 ObeservableCollection 中的对象具有默认的无参数构造函数。

【讨论】:

而且我猜这是不可能的接口类型的集合.. (?) 有时候一句话就够了:)【参考方案3】:

新的空白行将取决于您要绑定的集合是否实现了 IEditableCollectionView。见here。话虽如此,我发现有时它运行良好,而有时它似乎无法解释,但 IEditableCollectionView 是一个开始

【讨论】:

根据您提供的链接,ObservableCollection 已经实现了 IEditableCollectionView。至少是这样解释的。 虽然,根据msdn.microsoft.com/en-us/library/ms668604.aspx 它没有。感谢您的提示。

以上是关于WPF数据网格允许用户添加行?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用一种方法在网格 C# WPF 中添加行 [重复]

WPF DataGrid 自定义行标题

WPF 数据网格性能

如何使 wpf 行缩小以适合内容

将数据加载到数据网格时 C#/WPF 主窗口冻结

WPF Datagrid 行编辑“ENDED”事件