У меня есть следующая DataGrid
Как добавить новую строку в DataGrid в MVVM Дружественного Пути
<DataGrid CanUserDeleteRows="True"
CanUserAddRows="True"
SelectedItem="{Binding SelectedResource, Mode=TwoWay}"
ItemsSource="{Binding Path=Resources, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
IsAsync=True}"> ... </<DataGrid>
Я использую шаблон MVVM, чтобы связать с ObservableCollection<ResourceViewModel> Resources
и это прекрасно работает. У меня есть кнопка, которая добавляет новую строку, и это делается путем добавления нового ResourceViewModel
в коллекцию Resources
- отлично. Теперь я хочу, чтобы пользователь мог нажимать на пустую последнюю строку, и это автоматически создает новую запись в DataGrid
.
Я убедился, что DataGrid
имеет CanUserAddRows=True
. Я убедился, что класс в коллекции Resources
(ResourceViewModel
), к которому я привязываюсь, имеет конструктор по умолчанию (без параметров), и я убедился, что тип коллекции не является readonly. Когда пользователь нажимает на последнюю строку пожары конструктора по умолчанию, но чтобы правильно создать экземпляр новые ResourceViewModel
объекта в необходимости ссылки на любую сетку Resources
коллекции ...
Я полагаю, я мог бы использовать и AttachedCommand
на CellBeginEdit
событии а затем добавить новый ResourceViewModel
в наблюдаемую коллекцию там, есть стандартный способ сделать это?
Заметь, я прочитал следующие вопросы и это не поможет мне
Edit. Оказывается, у меня возникают проблемы с этим из-за ошибки в WPF DataGrid
. См. Nigel Spencer's Blog. Однако его исправление сейчас не работает для меня ...
+1 хороший вопрос. – Sheridan
Обновленная ссылка на сообщение в блоге Nigel Spencer [Проблемы, связанные с SelectedValue с WPF DataGrid] (http://blogs.spencen.com/?p=611) – Tone