从WPF 3.5迁移到4.0会导致错误“无法将页面放入样式”

时间:2009-11-24 18:45:59

标签: wpf mvvm

我正在将我的应用程序从.NET 3.5移动到.NET 4.0,并且收到以下错误消息:“无法将页面放入样式”。我已经为这个应用程序实现了MVVM模式,并使用数据模板告诉应用程序如何渲染我的各种视图模型......例如下面。

<DataTemplate DataType="{x:Type vm:ConfigureAxViewModel}">
    <vw:ConfigureAxPage />
</DataTemplate>

有没有解决此错误的方法?我是否必须进行页面控制?

谢谢, 罗伊

2 个答案:

答案 0 :(得分:1)

3.5&amp;的文档4.0:

  

可以通过WindowNavigationWindowFrame或浏览器托管页面。

我不希望视图是一个页面在许多实例中工作,通常视图只是UserControls。虽然我也不希望出现错误信息......

答案 1 :(得分:0)

我碰巧在Visual Studio 2010中的设计器中遇到此错误。几个小时后,我的一半头发消失了,我在App.xaml

中发现了问题
<DataTemplate DataType="{x:Type vm:LoginViewModel}">
     <views:Login />
</DataTemplate>

(那么他们谈论的“风格”在哪里?)无论如何,这里,登录是一个页面。事实证明,这里不能使用Page。您必须在页面的xaml中指定DataContext:

DataContext="{Binding LoginPage,Source={StaticResource Locator}}

Source

我正在使用MVVM Light,因此您可能需要查看它以获取有关Locator的更多信息。