我创建了一个sftabView,每个SfTabItem都有一个ContentView,所以我创建了另一个View来显示它在这个ContentView中。那么问题是如何做到这一点?这是我想在ContentPage
中显示的ContentView<?xml version="1.0" encoding="utf-8" ?>
<ContentView
xmlns="http://xamarin.com/schemas/2014/forms"
x:Class="App5.Views.Self_Trainig"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
NavigationPage.HasNavigationBar="False">
<ContentView.Resources>
<ResourceDictionary>
............
</ResourceDictionary>
</ContentView.Resources>
<ContentView.Content>
<AbsoluteLayout>
...............
</AbsoluteLayout>
</ContentView.Content>
</ContentView>
这是我的ContentPage:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:tabView="clr-namespace:Syncfusion.XForms.TabView;assembly=Syncfusion.SfTabView.XForms"
x:Class="App5.Views.Accueil">
<ContentPage.Content>
<tabView:SfTabView OverflowMode="DropDown" VisibleHeaderCount="3" BackgroundColor="White">
<tabView:SfTabItem Title="Self Training">
<tabView:SfTabItem.Content>
""the code to display it here""
</tabView:SfTabItem.Content>
</tabView:SfTabItem>
<tabView:SfTabItem Title="Contacts">
<tabView:SfTabItem.Content>
<Grid BackgroundColor="White" x:Name="ContactsGrid" />
</tabView:SfTabItem.Content>
</tabView:SfTabItem>
</tabView:SfTabView>
</ContentPage.Content>
</ContentPage>
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:mynamespace=clr-namespace:App5.Views"
...>
...
<tabView:SfTabItem.Content>
<mynamespace:Self_Trainig ... />
</tabView:SfTabItem.Content>
解释:
- 为你的ContentView所在的命名空间添加一个
xmlns:...
定义。 - 添加一个具有该命名空间和ContentView类名的元素。
<mynamespace:Self_Trainig ... />
...
:在类名之后,可以添加任何需要的属性。就像任何其他ContentView。- 如果你想让你的视图有"custom"属性(与ContentView的标准属性如BackgroundColor相反),可以在每个页面的XAML中设置,然后在你的ContentView的代码后面,你将添加
BindableProperty
s。正确地做这件事超出了这个答案的范围;关于这个话题还有其他的问题。
是否可以从c#代码中显示视图?
我的意思是做
ContentView x: Name ="TheView"
和c#代码上的
TheView = self_training;
我知道代码不工作,但我正在寻找那种解决方案