MVVM позиционирование диалога wpf - PullRequest
1 голос
/ 04 октября 2011

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

Мой код (ниже) может легко установить владельца диалогового окна в главное окно, но я бы действительно хотел бы сделать это расположить его рядом с графическим элементом (т. Е. Кнопкой, что угодно), который назвал это.

Кто-нибудь получил решение MVVM для этого?

Приветствия
Berryl

    // helper to create and prep windows in WPF
    private Window _createWindow(
        string key, object dataContext, bool setOwnerToCurrentMainWindow, 
        EventHandler<UICompletedEventArgs> completedProc, bool isModal)
    {
        var win = _registrationService.CreateRegisteredType<Window>(key);
        win.DataContext = dataContext;

        ...

        if (setOwnerToCurrentMainWindow)
            win.Owner = Application.Current.MainWindow;

        ...

        return win;
    }

1 Ответ

1 голос
/ 05 октября 2011

Тогда что тебя останавливает?Насколько я знаю, использование сценария Attached Behavior вполне допустимо в сценарии MVVM.

Если вы не хотите попробовать это, используя прикрепленное поведение totally ... then

Значения координат существующего графического элемента Top-Left и Size могут быть OneWayToSource привязаны к контексту данных вашего родительского представления (скажем, ParentVM).

Если не потому, что ActualSize является ReadOnly, так что связывайте его через Attached Behavior (опять же, в MVVM).

Так что ParentVM может удерживать Top, Lef, Bottom, Right координаты исходного графического элемента.Они могут быть отправлены на ваш вызов создания окна через dataContext (что, я думаю, вы можете отправить), где мы можем связать это с дочерними окнами Top и Left.

Критикуйтеесли в моем ответе что-то упущено:)

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