Pivot 奇淫技巧之 动态数据绑定

我相信了解 UWP 应用开发的同学都对 ListView 和 GridView 的数据绑定很熟悉啦,那我在做一个小应用的时候突然对 Pivot 有了数据绑定的要求,主要是索引出数据库里的表,每一张表都抽象成 Pivot 的一个 Header,那我们怎么做呢?

首先,既然是数据绑定,那先建一个模型类再说嘛

    public class Pivots
    {
        public string Header { get; set; }
    }

接下来我们用动态列表将这个类加载出来

private ObservableCollection<Pivots> pivots;

我们写一个查询数据库内所有表的方法

        public static ObservableCollection<Pivots> QureyTable(string basename)
        {
            ObservableCollection<Pivots> pivots = new ObservableCollection<Pivots>();
            using (SqliteConnection db = new SqliteConnection("Filename=" + basename + ".db"))
            {
                db.Open();
                SqliteCommand command = new SqliteCommand("SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name ", db);
                SqliteDataReader query = command.ExecuteReader();
                while (query.Read())
                {
                    pivots.Add(new Pivots { Header = query.GetString(0)});
                }
                db.Close();
            }            
            return pivots;
        }

注意这个方法要传入数据库的名字,不然去哪找 表 ··· 这个方法返回的就是 ObservableCollection<Pivots> 类型,所以我们可以直接把返回的值赋给 Pivots

pivots = Query.QureyTable(basename);

这样就完成了一半了,我们来看怎么将数据绑定在 XAML 文件上

    <Page.Resources>
        <DataTemplate x:Key="DT_Header" x:DataType="data:Pivots">
            <TextBlock Text="{x:Bind Header}" />
        </DataTemplate>     
    </Page.Resources>
    <Grid>
        <Pivot Title="MY APPLICATION" 
                Name="pivothub"
                HeaderTemplate="{StaticResource DT_Header}"
                ItemsSource="{x:Bind pivots}">
        </Pivot>
    </Grid>

这样就可以实现 Pivot 控件的 Header 动态加载了!

可能会有童鞋问了,怎么样动态加载 Pivot 控件的 Item?我会在下一篇博文里讲解~




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值