【问题标题】:MVVM positioning of a dialog wpf对话wpf的MVVM定位
【发布时间】:2011-10-04 16:57:58
【问题描述】:

我使用一项服务来管理对话框,该服务运行良好并将可视化细节与我的视图模型分离。

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

有人对此有 MVVM 解决方案吗?

干杯,
浆果

    // 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;
    }

【问题讨论】:

    标签: wpf mvvm dialog


    【解决方案1】:

    那么是什么阻止了你?据我所知,在 MVVM 场景中完全允许使用 Attached Behavior 的帮助。

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

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

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

    所以ParentVM 可以保存原始图形项的上、左、下、右坐标。它们可以通过dataContext(我猜你可以发送)发送到您的窗口创建调用,我们可以将其绑定到子窗口的TopLeft

    如果我的回复有遗漏,请批评。 :)

    【讨论】:

    • 附加行为对我来说仍然不是自然而然的 - 你能在代码中刮掉一个吗?干杯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 2020-07-27
    • 2015-03-21
    相关资源
    最近更新 更多