я немного застрял на вопрос с WPF DataGrids, и снова мой Google Foo не удалось мне, что я хочу сделать, кажется, очень простой, но я не могу за жизнь мне проработай это.WPF - Datagrid получить новый элемент после редактирования
Пожалуйста обнажить в виду, что я использую Caliburn Micro для этого приложения
У меня есть DataGrid, который привязан к ObservableCollection<Item>
элементы сами обрабатывать изменения, используя NotifyOfPropertyChange
и IsDirty флаг с, поэтому редактирование этих элементов не является проблемой, однако я не могу работать, как обрабатывать новые элементы добавляются, мы используем CanUserEditRows свойство DataGrid, чтобы рядный добавление новых элементов.
Однако моя проблема возникает, когда я пытаюсь обнаружить новый элемент, добавляемый, чтобы его запустить в мои службы баз данных. Кажется, многие люди используют событие CollectionChanged
для ObservableCollection
, чтобы обнаружить это. Однако это кажется чтобы запустить мгновение, когда пользователь нажимает на часть данных datagrid {NewItemPlaceholder}
, прежде чем какие-либо данные будут вставлены.
private void ItemList_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
foreach (Item i in e.NewItems)
{
_itemManager.Insert(i);
}
}
}
Это код, я использую, возможно, я сделал ошибку, но я не могу показаться, чтобы выяснить, как получить это стрелять только после редактирования закончена, к сожалению, Google, кажется, возвращается те же результаты, независимо от того, как я пытаюсь изменить свой вопрос. Надеюсь, кто-то здесь может предоставить мне относительно простой ответ на этот вопрос.
Если вам нужно больше кода, чтобы показать вам, как вещи работают (например, _itemManager
) я могу предоставить в случае необходимости.
Редактирование элемента не является моей проблемой, редактирование работает нормально, его способность указывать, когда новый элемент был добавлен в datagrid с помощью {NewItemPlaceholder} в самом файле данных, не повлияет ли ваше решение на каждое редактирование, независимо от того, является ли элемент новым или нет? – Ben
«когда добавлен новый элемент» - это тривиально, так как у вас должны быть критерии для «нового элемента». Обновлен ответ. – Dennis
Спасибо за ответ, это имеет смысл, однако у меня есть быстрый вопрос, функции CRUD обрабатываются _itemManager в моей модели viewmodel, теперь я рассматриваю возможность наличия свойства IsNew на моем объекте и выполнения проверки так же, как я использую IsDirty при сохранении. Тем не менее, я задавался вопросом, был ли более чистый способ, чтобы при каждом сохранении данных было необходимо проверить оба isnew и isdirty на каждый элемент. – Ben