zoukankan      html  css  js  c++  java
  • Win10 UI入门 pivot multiable DataTemplate

    this is a dynamic pivot with sliderable navigation and multiableDatatemplate Control  

    看了 alexis 大哥的pivot 动态绑定,和 自己做了一个多模版带滑动导航条的控件

    主要继承了DataTemplateSelector

    实现 绑定ItemTemplateSelector="{TemplateBinding BodyDataTemplateSelector}"

    主要代码

        public class Media : DataTemplateSelector
        {
            protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
            {
                var media = (TestPivot)item;
                DataTemplate template;
    
                switch (media.BodyItem.MediaType)
                {
                    case Enums.Media.BOOK:
                        template = BookTemplate;
                        break;
                    case Enums.Media.GAME:
                        template = GameTemplate;
                        break;
                    case Enums.Media.MOVIE:
                        template = MovieTemplate;
                        break;
                    default:
                        template = BookTemplate;
                        break;
                }
    
                return template;
            }
    
            public DataTemplate BookTemplate { get; set; }
    
            public DataTemplate GameTemplate { get; set; }
    
            public DataTemplate MovieTemplate { get; set; }
        }
                <DataTemplate x:Key="BookDataTemplate">
                    <ListBox ItemsSource="{Binding BodyItem.ListData}" Margin="0,5,0,0" Background="Green">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding}" />
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                </DataTemplate>
                <DataTemplate x:Key="GameDataTemplate">
                    <Grid Background="Red" Height="120">
                        <TextBlock Text="{Binding BodyItem.MediaItem}" Margin="0,5,0,0"/>
                    </Grid>
                </DataTemplate>
                <DataTemplate x:Key="MovieDataTemplate">
                    <Image Source="{Binding BodyItem.ItemImg}" Stretch="Uniform"/>
                </DataTemplate>
                
                <selectors:Media x:Key="mediaDataTemplateSelector"
                    BookTemplate="{StaticResource BookDataTemplate}"
                    GameTemplate="{StaticResource GameDataTemplate}" 
                    MovieTemplate="{StaticResource MovieDataTemplate}" />
                <ctl:WYPanorama                     
                    HeaderDataTemplate="{StaticResource DT_HeaderMutil}"
                        HeaderDataItemsSource="{Binding BindData}" 
                        BodyDataTemplateSelector="{StaticResource mediaDataTemplateSelector}"
                        BodyDataItemsSource="{Binding BindData}">
                </ctl:WYPanorama>
  • 相关阅读:
    BooStrap4文档摘录: 1. Layout
    PistgreSQL9.6手册(基础摘录)
    HTML 5与CSS 3权威指南(第3版·上册)
    Excel PPT 2013办公应用从入门到精通
    EclipseWTPWeb应用开发
    Photoshop移动UI设计实用教程(第2版)
    高手速成:EDIUS专业级视频与音频制作从入门到精通
    黑客攻防从入门到精通
    利用Python进行数据分析(原书第2版)
    Linux二进制分析
  • 原文地址:https://www.cnblogs.com/luquanmingren/p/6634453.html
Copyright © 2011-2022 走看看