所以我目前正在开发我的第一个Xamarin应用程序。 我有一个带有菜单的MasterDetailPage,当你点击左边的一个菜单项时,我保存了我正在使用的对象(到文件系统),我创建了一个新的' ContentPage'对于他们选择的页面,并将对象作为构造函数参数传递。
然后我尝试将MasterDetailPage Detail对象设置为(ContentPage)obj,它是他们选择的内容页面的演员。
现在您可以看到,JobDetails的基础是ContentPage,但我无法将其转换为内容页面!?
我也尝试过转换为Page而无济于事。
在谈到投射时,我是否缺少一些基本知识,或者在这里发生了什么?
答案 0 :(得分:1)
我已经解决了这个问题。 问题不在于内容页面强制转换(从obj>内容页面进行投射),而是因为我在JobDetails页面中有一些不正确的xaml。
违规的xaml是
<ListView Grid.Row="3" Grid.ColumnSpan="2" Grid.Column="0" x:Name="KeySkillsList">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Text="{Binding Name, Mode=TwoWay}"></Label>
<Switch Grid.Row="0" Grid.Column="1" IsToggled="{Binding Value, Mode=TwoWay}"></Switch>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这是因为我误解了列表视图(和开关!) 具体的违规行是,该页面已经注释掉了。
我现在已经改变了它,这只是一个普通的列表视图,带有1个switchcell,带有Text属性。