我打算实现用户控件的水平列表,我希望在运行时将其添加到翻转视图中,我尝试了以下代码:
<FlipView Grid.Row="2" Name="SlideFlipView"
ItemsSource="{x:Bind SlideViews}"
SelectionChanged="SlideFlipView_SelectionChanged"
Background="AliceBlue">
<FlipView.ItemTemplate>
<DataTemplate>
<Frame Name="MenuDetailFrame" SourcePageType="{Binding}"/>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
类看起来像以下代码:
public sealed partial class MenuDetailPage : Page
{
private List<object> SlideViews;
public MenuDetailPage()
{
this.InitializeComponent();
LoadInitials();
}
private void LoadInitials()
{
SlideViews = new List<object>
{
typeof(TopImageBottomTextControl),
typeof(TopTextBottomImageControl)
};
}
}
但是当我运行程序时,用户控件不会出现在翻盖中。如果我在这里遗漏了什么,请告诉我
答案 0 :(得分:1)
根据array { }
:
可以使用XAML命名空间映射解释的字符串到类型转换在XAML中设置SourcePageType,但很少这样做。在应用程序级别跟踪激活以及暂停的应用程序是否正在恢复,然后使用Frame.Navigate设置当前页面,这是一种更好的做法。
根据您的要求,您可以将用户控件对象绑定到Frame的Content
。
private void LoadInitials()
{
SlideViews = new List<object>
{
new TopImageBottomTextControl(),
new TopImageBottomTextControl()
};
}
<强>用法强>
<FlipView Name="SlideFlipView"
ItemsSource="{x:Bind SlideViews}"
SelectionChanged="SlideFlipView_SelectionChanged"
Background="AliceBlue">
<FlipView.ItemTemplate>
<DataTemplate>
<Frame Name="MenuDetailFram" Content="{Binding}" />
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
答案 1 :(得分:1)
以下代码没有datatemplate为我工作:
<FlipView Grid.Row="2"
Name="SlideFlipView"
ItemsSource="{x:Bind SlideViews}"
SelectionChanged="SlideFlipView_SelectionChanged"
Background="AliceBlue">
</FlipView>
在类中初始化slideviews对象看起来像
private void LoadInitials()
{
SlideViews = new List<object>
{
new UserControl1(),
new UserControl2()
};
}