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>
  • 相关阅读:
    Swap Nodes in Pairs
    Search for a Range——稍微升级版的二分查找
    Set Matrix Zeroes——常数空间内完成
    Ubuntu系统---C++之Eclipse 开始工程项目
    Ubuntu系统---C++之Eclipse编译器 CDT插件安装
    Ubuntu系统---开机总会显示错误报告处理
    Ubuntu系统---C++之Eclipse IDE 编译器安装
    Ubuntu系统---终端下用g++进行c++项目
    Ubuntu系统---进行C++项目开发的工具
    YOLO---Darknet下的 GPU vs CPU 速度
  • 原文地址:https://www.cnblogs.com/androllen/p/6634453.html
Copyright © 2011-2022 走看看