web-dev-qa-db-ja.com

WPFデータグリッドにより、ユーザーは行を追加できますか?

ユーザーが情報を追加できるように、監視可能なコレクションにバインドされている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のMVVM実装 を使用しています。私はまた、この問題についてSO posts をいくつか読んでいます theyhelped を読んでいません。

前もって感謝します。

更新2010-01-14:

Usercontrol loadイベントが発生すると、 "CanUserAdddRows"はfalseになります。記載されている条件と何か関係があるのではないかと思います here

27
JP Richardson

問題が見つかりました。 ObservableCollectionの一部であるオブジェクトの私のコンストラクターは、パブリックとして宣言されていません。

*頭をぶつけた*

御時間ありがとうございます。

39
JP Richardson

ObeservableCollection内のオブジェクトに、デフォルトのパラメーターなしのコンストラクターがあることを確認してください。

17
bartonm

新しい空白行は、バインドしているコレクションがIEditableCollectionViewを実装しているかどうかによって異なります。 こちら を参照してください。そうは言っても、うまくいくこともあれば、説明がつかないこともあるようですが、IEditableCollectionViewが始まりです

4
Aran Mulholland