繁体   English   中英

将用户控件列表绑定到翻页视图?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM