gpt4 book ai didi

wpf - 对话wpf的MVVM定位

转载 作者:行者123 更新时间:2023-12-03 10:40:00 24 4
gpt4 key购买 nike

我使用一个服务来管理对话框,它工作得很好,并且将可视化细节与我的 View 模型分离。

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

有人对此有 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;
}

最佳答案

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

如果您不想尝试使用附加行为 总计 ... 然后

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

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

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

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

关于wpf - 对话wpf的MVVM定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7651413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com