WPF datagrid允许用户添加行?

时间:2010-01-13 20:35:56

标签: 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}">

PS:我正在使用Josh Smith's MVVM implementation。我还在此问题上阅读了一些SO poststhey还没有helped

提前致谢。

更新2010-01-14:

发生usercontrol load事件时,“CanUserAdddRows”为false。我怀疑与here列出的条件有关。

3 个答案:

答案 0 :(得分:38)

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

*击中头*

感谢您的时间。

答案 1 :(得分:17)

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

答案 2 :(得分:4)

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