2009-11-24 18 views
5

Tôi đang trong quá trình di chuyển ứng dụng của mình từ .NET 3.5 đến .NET 4.0 và tôi nhận được thông báo lỗi sau: " Không thể đặt một trang theo kiểu ". Tôi đã triển khai mẫu MVVM cho ứng dụng này và sử dụng Mẫu dữ liệu để cho ứng dụng biết cách hiển thị các kiểu xem khác nhau của tôi ... ví dụ bên dưới.Di chuyển từ WPF 3.5 đến 4.0 gây ra lỗi "Không thể đặt một trang theo kiểu"

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

Có cách nào xung quanh lỗi này không? Tôi có phải kiểm soát các trang của mình không?

Cảm ơn, Roy

+0

Tôi không ngạc nhiên khi điều này không hoạt động trong 4.0, tôi bị nhầm lẫn rằng nó hoạt động trong 3.5. Tôi có hiểu câu hỏi của bạn một cách chính xác không? – Guge

+0

Sự hiểu lầm là gì? Tôi đã định nghĩa một kiểu dữ liệu như một trang. Tôi thấy điều này trong một số MVVM hướng dẫn một khi trở lại. – LPCRoy

Trả lời

1

Documents cho cả 3,5 & 4.0:

Một trang có thể được tổ chức từ Window, NavigationWindow, Frame, hoặc từ một trình duyệt.

Tôi không mong đợi một lượt xem là trang hoạt động trong nhiều trường hợp cho vấn đề đó, thường là lượt xem chỉ là UserControls. Mặc dù tôi cũng sẽ không hy vọng rằng thông báo lỗi ...

0

tôi tình cờ nhận được lỗi này trong nhà thiết kế trong Visual Studio 2010. Một vài giờ sau đó với một nửa mái tóc của tôi đi, tôi thấy vấn đề trong App.xaml

<DataTemplate DataType="{x:Type vm:LoginViewModel}"> 
    <views:Login /> 
</DataTemplate> 

(Vì vậy, đâu là "Phong cách" họ nói về ???) Dù sao, tại đây, Đăng nhập là một Trang. Hóa ra một Trang không thể được sử dụng ở đây. Bạn cần phải xác định một DataContext trong XAML của trang thay vì:

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

Source

Tôi đang sử dụng MVVM ánh sáng, do đó bạn có thể muốn kiểm tra xem nó ra để biết thêm thông tin về Locator.

Các vấn đề liên quan