如何在ContentPage中显示ContentView



我创建了一个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的代码后面,你将添加BindablePropertys。正确地做这件事超出了这个答案的范围;关于这个话题还有其他的问题。

是否可以从c#代码中显示视图?

我的意思是做

ContentView x: Name ="TheView"

和c#代码上的

TheView = self_training;

我知道代码不工作,但我正在寻找那种解决方案

最新更新