【发布时间】:2015-09-03 15:05:17
【问题描述】:
这个问题参考了这个链接Opening new window in MVVM WPF。
如果我有以下情况:
public class WindowService:IWindowService {
public void ShowWindow(object viewModel){
var win = new Window {Content = viewModel};
win.Show();
}
}
还有我的 app.xaml 代码:
<DataTemplate DataType="{x:Type local:MyViewModel}">
<local:MyUserControlView />
</DataTemplate>
我不想在代码中添加如下样式:
public class WindowService:IWindowService {
public void ShowWindow(object viewModel){
var win = new Window {Content = viewModel};
win.SizeToContent = SizeToContent.WidthAndHeight;
win.ResizeMode = ResizeMode.NoResize;
win.WindowStartupLocation = WindowStartupLocation.CenterScreen;
win.Icon =...
win.Show();
}
}
有没有办法在 Xaml 中使用 dataTemplate 做到这一点?
我想要一种方法来更改在 WindowService 中创建的窗口的样式,而不是在代码中。不是全局样式,但如果我有 viewModel1 和 viewModel2 showWindow 将能够根据传递给它的 viewModel 创建两个具有不同样式的窗口
【问题讨论】: