我正在爲移動設備製作一組單獨的視圖,而不是爲手機使用其他自適應UI狀態。我可以通過在我的文件夾中添加一個名爲DeviceFamily-Mobile
的子文件夾並添加一個新的View
來實現此目的,該文件夾的名稱與我正在重寫的名稱相同。將ViewModel添加到移動視圖
我有以下View
將工作,並顯示移動設備/模擬器上的「移動」。
<Page x:Class="MyApp.PayeesPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:behaviors="using:Template10.Behaviors"
xmlns:controls="using:Template10.Controls"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:models="using:MyApp.Models"
xmlns:viewModels="using:MyApp.ViewModels"
xmlns:views="using:MyApp.Views"
mc:Ignorable="d">
<RelativePanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBlock x:Name="MobileTextBlock"
Foreground="{ThemeResource ForegroundColorBrush}"
Text="MOBILE" />
</RelativePanel>
</Page>
但是,如果我嘗試設置DataContext
讓我實際顯示一些有用的東西,就像這樣:
<Page.DataContext>
<viewModels:PayeesPageViewModel x:Name="ViewModel" />
</Page.DataContext>
然後我得到一個錯誤導航至PayeesPage
時:
無法投射「Windows.UI.Xaml.Controls.TextBlock」類型的對象以鍵入「MyApp.ViewModels.PayeesPageViewModel」。
這與我在原始PayeesPage
上設置DataContext
的方法相同,它工作正常。有沒有其他方法可以在這些替代View
上設置DataContext
,還是我錯過了什麼?
THX爲了分享您的解決方案,有很多關於DeviceFamily-Type文件夾的文章,例如http://igrali.com/2015/08/02/three-ways-to-set-specific-devicefamily-xaml-views-in -uwp/ –
這是一個冰文章 - 我得到了很多我的信息。我的問題是,我發現的任何信息都沒有指出需要共享相同'x:Class'的視圖,因此在這種情況下,來自ReSharper的紅色波浪曲線有點誤導。 –