zoukankan      html  css  js  c++  java
  • WPF 绑定以基础数据类型为集合的无字段名的数据源

    WPF 绑定以基础数据类型为集合的无字段名的数据源

    运行环境:Window7 64bit,.NetFramework4.61,C# 6.0; 编者:乌龙哈里 2017-02-21


    我们在控件的数据绑定中经常是给定一个类,比如下面类似的:

    Class Student
    {
        public int code;
        public string name;
        public int score;
    }

    然后用 List<Student> 或者 Student[] 来当作数据源,只要在绑定中的指定字段名就成了,如 {Binding code} 之类的。
    但是,我们经常会碰到以基础数据类型,如 int 、string 之类为集合的无字段名的动态数据源,比如 List< int[ ] > 这样的,该如何绑定呢?
    其实也简单,直接指定 T 的索引,{Binding [0]},{Binding [1]} 如此写。如下示列代码:

    示例1(前端绑定):

    前端 XAML 代码片段:

    <ListView Name="lsvList" >
        <ListView.View>
            <GridView>
                <GridView.Columns>
                    <GridViewColumn Header="a" DisplayMemberBinding="{Binding [0]}"/>
                    <GridViewColumn Header="b" DisplayMemberBinding="{Binding [1]}"/>
                    <GridViewColumn Header="c" DisplayMemberBinding="{Binding [2]}"/>
                    <GridViewColumn Header="d" DisplayMemberBinding="{Binding [3]}"/>
                </GridView.Columns>
            </GridView>
        </ListView.View>
    </ListView>

    后端 C# 代码片段:

    List<int[]> list = new List<int[]>();
    int[] arr = new int[] { 1, 2, 3, 4 };
    list.Add(arr);
    arr = new int[] { 3, 4, 5, 6 };
    list.Add(arr);
    lsvList.ItemsSource = list;

    运行结果如图:

    示例2(后端用C#代码实现绑定):

    前端XAML代码片段:

    <ListView Name="lsvList" >
    </ListView>

    后端C#代码片段:

    List<int[]> list = new List<int[]>();
    int[] arr = new int[] { 1, 2, 3, 4 };
    list.Add(arr);
    arr = new int[] { 3, 4, 5, 6 };
    list.Add(arr);
    GridView gv = new GridView();
    for (int i = 0; i < 4; i++)
    {
        GridViewColumn col = new GridViewColumn() { Header = headlist[i], DisplayMemberBinding = new Binding($"[{i}]") };
        gv.Columns.Add(col);
    }
    lsvList.View = gv;
    lsvList.ItemsSource = list;


  • 相关阅读:
    UWP开发-获取设备唯一ID
    html5加js实现本地文件读取和写入并获取本地文件路径
    C/C++杂记:运行时类型识别(RTTI)与动态类型转换原理
    C/C++杂记:深入虚表结构
    C/C++杂记:虚函数的实现的基本原理
    C/C++杂记:深入理解数据成员指针、函数成员指针
    C/C++杂记:NULL与0的区别、nullptr的来历
    细说:Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-4
    汉字编码:GB2312, GBK, GB18030, Big5
    ANSI是什么编码?
  • 原文地址:https://www.cnblogs.com/leemano/p/6422274.html
Copyright © 2011-2022 走看看