![](/img/trans.png)
[英]Binding of RowDefinition in FlipView different then binding of FlipView itself
[英]Binding List of user controls to flipview?
我打算實現用戶控件的水平列表,我想在運行時將其添加到翻轉視圖中,我嘗試了以下代碼:
<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)
};
}
}
但是當我運行程序時,用戶控件沒有出現在鍵盤蓋上。 讓我知道我是否想念這里的東西
根據“框架類別” :
可以在XAML中使用通過XAML名稱空間映射解釋的字符串到類型的轉換來設置SourcePageType,但這很少做到。 更好的做法是在應用程序級別使用代碼來跟蹤激活以及是否暫停了正在恢復的應用程序,然后使用Frame.Navigate來設置當前頁面。
根據您的要求,可以將用戶控件對象綁定到框架的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>
以下沒有datatemplate的代碼對我有用:
<FlipView Grid.Row="2"
Name="SlideFlipView"
ItemsSource="{x:Bind SlideViews}"
SelectionChanged="SlideFlipView_SelectionChanged"
Background="AliceBlue">
</FlipView>
Class中slideviews對象的初始化看起來像
private void LoadInitials()
{
SlideViews = new List<object>
{
new UserControl1(),
new UserControl2()
};
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.