МВВМ Класс Инстанция и Аргс - PullRequest
0 голосов
/ 18 июля 2011

Я пытаюсь перевести мой мозг в режим MVVM.

У меня есть Grid в моем представлении и различные методы для манипулирования им и добавления фигур к нему в моей viewmodel. Я понимаю, что должен попытаться избежать подобных вещей в ВМ, поэтому я переместил эти методы в свой собственный класс. То, что я пытаюсь выяснить, это

а) Где должен быть создан экземпляр нового класса? В настоящее время у меня есть это в моей виртуальной машине, используя IoC.Get ()

б) NewClass нужно взять Grid в представление, как я могу это сделать? (Единственное, о чем я могу думать, это чтобы виртуальная машина получила ссылку на свой вид и передала таблицу в NewClass, но это не лучший способ сделать это)

1 Ответ

1 голос
/ 18 июля 2011

А) Посмотрите на использование сопрограмм, если вам нужно манипулировать сеткой так, как вы не можете пройти через модель представления. Ссылка на представление передается в ActionExecutionContext.

public interface IResult
{
    void Execute(ActionExecutionContext context);
    event EventHandler<ResultCompletionEventArgs> Completed;
}

public class ActionExecutionContext
{
    public ActionMessage Message;
    public FrameworkElement Source;
    public object EventArgs;
    public object Target;
    public DependencyObject View;
    public MethodInfo Method;
    public Func<bool> CanExecute;
    public object this[string key];
}
...