WPF datagrid允许用户添加行?

JP *_*son 27 c# wpf datagrid mvvm

我希望绑定到我的可观察集合的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}">
Run Code Online (Sandbox Code Playgroud)

PS:我正在使用Josh Smith的MVVM实现.我也读过一些关于这个问题的SO 帖子,但他们没有帮助.

提前致谢.

更新2010-01-14:

当usercontrol load事件发生时,"CanUserAdddRows"为false.我怀疑这与这里列出的条件有关.

JP *_*son 40

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

*击中头部*

谢谢你的时间.

  • 也节省了一些时间.请注意,您需要一个无参数构造函数... (10认同)

bar*_*onm 18

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


Ara*_*and 5

新的空白行将取决于您要绑定的集合是否实现IEditableCollectionView。看这里。话虽这么说,我发现有时候它运作良好,而其他时候似乎无法解释,但IEditableCollectionView是一个开始