WPF Обновить модель на переплет - PullRequest
0 голосов
/ 23 октября 2009

Мне было интересно, существует ли способ вызова метода или обновления свойства в моем объекте ViewModel, когда WPF связывается с объектом?

Причина, по которой я хочу это сделать, заключается в том, что при создании моих объектов viewModel их модель данных содержит только идентификатор, который используется для запроса данных из базы данных при необходимости. Поэтому, когда пользователь переходит к этому объекту, я хочу, чтобы представление уведомляло объект ViewModel о том, что он отслеживается, и в результате сообщает модели данных обновить свои значения из БД и перевести мой объект ViewModel в состояние загрузки

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 октября 2009

Когда WPF связывается с объектом в вашей ViewModel, он будет использовать свойства getter для получения значения.

Похоже, вы пытаетесь использовать ленивую оценку - просто заставьте получателя лениво создавать информацию из БД:

private int entityId; // Set in advance
private Entity entityToFetch; // Will be fetched lazily

public Entity EntityToFetch
{
    get 
    {
        if (this.entityToFetch == null) // || this.entityToFetch.Id != this.entityId) - add this if you're letting this change at runtime...
        {
            this.entityToFetch = DataAccessLayer.FetchEntityForId(this.entityId);
        }

        return this.entityToFetch;
    }
}
0 голосов
/ 23 октября 2009

Вы можете добавить свойство Selected в ViewModel, которое устанавливается при выборе объекта. Когда Selected обращается в истину, вы можете получить доступ к вашей базе данных.

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