我正在为移动设备制作一组单独的视图,而不是为手机使用其他自适应UI状态。我可以通过在名为Views
的{{1}}文件夹中添加一个子文件夹并添加一个与我重写的名称相同的新DeviceFamily-Mobile
来实现此目的。
我有以下View
可以使用并显示" MOBILE"在移动设备/模拟器上。
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>
:
无法转换类型为&#39; Windows.UI.Xaml.Controls.TextBlock&#39;的对象输入&#39; MyApp.ViewModels.PayeesPageViewModel&#39;。
这与我在原PayeesPage
上设置DataContext
的方式相同,但效果很好。是否有不同的方法可以在这些替代PayeesPage
上设置DataContext
,或者我错过了哪些内容?
答案 0 :(得分:0)
事实证明,移动设备View
需要与原始x:Class
具有相同的Page
。 ReSharper在我尝试将其称为MyApp.Views.PayeesPage
时抱怨,因为已经存在,所以我将其更改为MyApp.PayeesPage
。但是,当我将其切换回来以便两者都使用相同的x:Class
时,一切都按预期开始工作。
不幸的是,我从ReSharper那里得到了一堆红色的波浪形,但事情正在发挥作用。以防万一将来有人遇到这个问题:
<强>查看/ PayeesPage.xaml:强>
<Page x:Class="MyApp.Views.PayeesPage"
...>
<强>查看/ DeviceFamily-移动/ PayeesPage.xaml:强>
<Page x:Class="MyApp.Views.PayeesPage"
...>