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;
?
轉載于:https://www.cnblogs.com/leemano/p/6422274.html
總結
以上是生活随笔為你收集整理的WPF 绑定以基础数据类型为集合的无字段名的数据源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动画性能优化-requestAnimat
- 下一篇: Angular2组件与指令的小实践——实