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>
  • 相关阅读:
    使用 Python 编码和解码 JSON 对象
    搞定github下载加速
    git错误:fatal: Could not read from remote repository.解决
    webstorm安装配置
    node.js下载安装
    IDEA安装小配置
    JAVA软件安装
    关于升级一般软件的一些想法
    linux 的 逻辑卷管理
    记一次内核升级。
  • 原文地址:https://www.cnblogs.com/androllen/p/6634453.html
Copyright © 2011-2022 走看看