我使用服务来管理对话框,它可以很好地工作,并将可视化细节与我的视图模型分离。
我的代码(下面)可以轻松地将对话框窗口所有者设置为主窗口,但我真正喜欢做的是将它放在图形项旁边(即按钮,等等)这叫它。
有没有人有这个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;
}
答案 0 :(得分:1)
然后什么阻止你?据我所知,在MVVM场景中完全允许Attached Behavior
的帮助。
如果你不想尝试使用附加行为完全 ...那么
现有图形项的坐标值Top-Left
和Size
可以OneWayToSource
绑定到父视图的数据上下文(假设为ParentVM
)。
如果不是因为ActualSize
是ReadOnly,那么通过Attached Behavior
绑定它(在MVVM中再次完全允许)。
因此ParentVM
可以保存原始图形项的Top,Lef,Bottom,Right坐标。它们可以通过dataContext
(这是我猜你可以发送的)发送到你的Window创建调用,我们可以将它绑定到子窗口的Top
和Left
。
批评我的回复中是否有遗漏。 :)