MVVM定位对话框wpf

时间:2011-10-04 16:57:58

标签: wpf mvvm dialog

我使用服务来管理对话框,它可以很好地工作,并将可视化细节与我的视图模型分离。

我的代码(下面)可以轻松地将对话框窗口所有者设置为主窗口,但我真正喜欢做的是将它放在图形项旁边(即按钮,等等)这叫它。

有没有人有这个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 个答案:

答案 0 :(得分:1)

然后什么阻止你?据我所知,在MVVM场景中完全允许Attached Behavior的帮助。

如果你不想尝试使用附加行为完全 ...那么

现有图形项的坐标值Top-LeftSize可以OneWayToSource绑定到父视图的数据上下文(假设为ParentVM)。

如果不是因为ActualSize是ReadOnly,那么通过Attached Behavior绑定它(在MVVM中再次完全允许)。

因此ParentVM可以保存原始图形项的Top,Lef,Bottom,Right坐标。它们可以通过dataContext(这是我猜你可以发送的)发送到你的Window创建调用,我们可以将它绑定到子窗口的TopLeft

批评我的回复中是否有遗漏。 :)