Сетка данных WPF позволяет пользователю добавлять строки? - PullRequest
26 голосов
/ 13 января 2010

Мне бы хотелось, чтобы мой 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: я использую реализацию MVSM Джоша Смита . Я также прочитал некоторые сообщения SO по этому вопросу, и они не помогли .

Заранее спасибо.

Обновление 2010-01-14:

Когда происходит событие загрузки usercontrol, «CanUserAdddRows» имеет значение false. Я подозреваю, что это как-то связано с условиями, перечисленными здесь .

Ответы [ 3 ]

38 голосов
/ 14 января 2010

Нашел проблему. Мой конструктор в объекте, который является частью моего ObservableCollection, не был объявлен открытым.

* Удары головой *

Спасибо за ваше время.

17 голосов
/ 07 ноября 2013

Убедитесь, что ваши объекты в ObeservableCollection имеют конструктор по умолчанию без параметров.

4 голосов
/ 14 января 2010

Новая пустая строка будет зависеть от того, реализует ли привязываемая коллекция IEditableCollectionView. см. здесь . При этом я обнаружил, что иногда это работает хорошо, а иногда необъяснимо, кажется, нет, но IEditableCollectionView - это начало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...