WPF Xaml中创建集合

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF Xaml中创建集合相关的知识,希望对你有一定的参考价值。

原文:WPF Xaml中创建集合

首先在xaml中创建集合是一个不可取的方法。

本方法仅作为xaml的学习。

本文略微无聊,主要是编写的东西都是老玩意。

首先是定义一个类,作为你要加载集合的模型。

结构如下

技术图片
 internal class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
    internal class StudentList:List<Student>
    {

    }
  class StringCollect
    {
        public StudentList Students { get; set; }
    }
技术图片

 

 

XAML中

技术图片
  <Window.DataContext>
        <local:StringCollect  x:Name="c2"  >
            <local:StringCollect.Students>
                <local:StudentList>
                    <local:Student Age="18" Name="A1"/>
                    <local:Student Age="18" Name="A2"/>
                    <local:Student Age="18" Name="A3"/>
                </local:StudentList>
            </local:StringCollect.Students>
        </local:StringCollect>
    </Window.DataContext>
    <Grid>
        <ListBox ItemsSource="{Binding ElementName=c2,Path=Students}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock>
                            <Run Text="Name:"/>
                            <Run Text="{Binding Name}"/>
                        </TextBlock>
                        <TextBlock Grid.Column="1">
                            <Run Text="Age:"/>
                            <Run Text="{Binding Age}"/>
                        </TextBlock>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>
技术图片

 

截图如下

技术图片

 

那么还有别的方法吗?

当然了,比如XAML中的X:Array关键字

比如

技术图片
        <ListBox  >
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock>
                            <Run Text="Name:"/>
                            <Run Text="{Binding Name}"/>
                        </TextBlock>
                        <TextBlock Grid.Column="1">
                            <Run Text="Age:"/>
                            <Run Text="{Binding Age}"/>
                        </TextBlock>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
            <ListBox.ItemsSource>
                <x:Array Type="{x:Type local:Student}">
                    <local:Student Age="18" Name="b1"/>
                    <local:Student Age="18" Name="b2"/>
                    <local:Student Age="18" Name="b3"/>
                </x:Array>
            </ListBox.ItemsSource>
        </ListBox>
技术图片

我觉得在xaml创建集合是一个比较无聊的事情。

以上是关于WPF Xaml中创建集合的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何阅读键盘输入以在 WPF 中创建 2D 游戏?

访问F#中的XAML(WPF)元素

如何在 Rider 中创建 XAML + CodeBehind 对?

无法在 XAML 中创建对其他项目的 xmlns 引用

WPF--名称范围

WPF--名称范围