"Вложенный" вопрос MVVM - PullRequest
       3

"Вложенный" вопрос MVVM

1 голос
/ 21 февраля 2011

У меня есть окно WPF с сеткой данных и пользовательским элементом управления для формы для полей в этой сетке данных.Пользовательский элемент управления и окно WPF имеют модели представлений.

DataContext пользовательского элемента управления привязан к одному из полей-членов модели представления окна, значение которого изменяется во время события Selection Changed сетки данных.

Я не уверен, что это правильный способ сделать это, потому что по какой-то причине я не могу создать ссылки из модели внутреннего представления на модель внешнего представления.Внедрение в конструктор не сработает, потому что мне нужно использовать только конструктор по умолчанию, и я не могу поместить инжектор свойства в нужное место (всегда получая нулевую ссылку, когда я пытаюсь его использовать).

Я также не могу получить уведомление об изменении своего свойства для правильной работы в модели внутреннего вида.

Есть ли лучший способ связать модели моего вида, чтобы они автоматически меняли значения в пользовательском элементе управления при новомстрока выбрана в сетке данных?У меня такое ощущение, что привязка к DataContext элемента управления - не тот путь.

1 Ответ

0 голосов
/ 21 февраля 2011

Это не кажется сложным / вложенным сценарием. Похоже, в основном нормальный сценарий основных деталей. Предположим, что вы хотите редактировать данные о клиентах, у меня будет привязка экземпляра ObservableCollection к DataGrid, а также будет свойство SelectedCustomer в виртуальной машине. В DataGrid вы можете установить привязку SelectedItem twoway к свойству SelectedCustomer, что делает SelectedCustomer всегда обновленным с вашим выбором. Поскольку usercontrol имеет тот же экземпляр customer, что и в строке DataGrid, всякий раз, когда вы что-либо изменяете в UC, эти данные будут отражаться в сетке. Конечно, все эти свойства должны запускать NotifypropertyChanged.

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