WPF DataGrid — значения по умолчанию для сгенерированных объектов

#wpf

#wpf

Вопрос:

Я хочу привязать элемент управления сеткой данных к свойству коллекции в моей модели MVVM таким образом, чтобы при добавлении новых строк самой модели присваивалось свойство каждого объекта, сгенерированного сеткой данных. Цель этого — создать двустороннее отношение «один ко многим» между моделью и ее дочерними элементами коллекции, чтобы каждый элемент мог знать о родительской модели.

Как это сделать?

Спасибо!

Комментарии:

1. Когда вы говорите «модель передается конструктору», что вы имеете в виду? По моему опыту, модель относится конкретно к предметной области данных в программе. Если вы говорите о наличии родительского класса модели, у которого есть дочерние элементы в коллекции, это должно быть довольно просто. Пожалуйста, поясните.

Ответ №1:

Я предполагаю, что вы используете новую строку записи DataGrid для добавления элементов. Я не уверен, как сделать с этим то, что вы хотите, однако, что вы можете сделать, это добавить кнопку для создания нового элемента, привязать свойство команды buttons к команде в вашей ViewModel и построить оттуда. Просто есть перегруженный конструктор, который принимает аргумент.

Мне приходит в голову, что вы могли бы сделать это иначе. Вам нужно будет сделать видимым любой объект, на который вы хотите ссылаться, из нового объекта. Вы могли бы сделать это таким образом:

  1. В вашем коде MainWindow (или App.xaml) создайте и предоставьте свойство для хранения текущего объекта модели.
  2. Всякий раз, когда изменяется текущий объект модели, отражайте это изменение в открытом свойстве.

  3. В конструкторе для вашего дочернего объекта найдите это свойство.

  4. Если значение не равно null, присвойте его соответствующему дочернему свойству навигации.