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创建集合是一个比较无聊的事情。

原文地址:https://www.cnblogs.com/lonelyxmas/p/11484233.html

时间: 2024-10-05 04:58:28

WPF Xaml中创建集合的相关文章

标记扩展和 WPF XAML

本主题介绍 XAML 的标记扩展概念,包括其语法规则.用途以及底层的类对象模型. 标记扩展是 XAML 语言以及 XAML 服务的 .NET 实现的常规功能. 本主题专门详细论述了用于 WPF XAML 的标记扩展. 本主题包括下列各节. XAML 处理器和标记扩展 基本标记扩展语法 XAML 定义的标记扩展 特定于 WPF 的标记扩展 *Extension 类 转义序列和标记扩展 XAML 用法中的嵌套标记扩展 标记扩展和属性元素语法 相关主题 XAML 处理器和标记扩展 通常,XAML 分析

swift:创建集合视图UICollectionView

swift中创建集合视图和OC中差不多,主要是实现UICollectionViewDataSource数据源协议和UICollectionViewDelegateFlowLayout自定义布局协议,其中UICollectionViewDelegateFlowLayout自定义布局协议继承自UICollectionViewDelgate.使用自定义布局,可以设置集合视图单元格的大小.位置.间距等等 例如: let flowLayout = UICollectionViewFlowLayout()

使用OxyPlot在WPF中创建图表

目录(?)[+] Using Nuget 包括OxyPlot在你的应用程序的最简单方法是使用NuGet包管理器在Visual Studio 运行 Visual Studio并开始创建一个新的WPF项目选择一个名称和位置并点击OK Create the ViewModel Adding the graph to the page Binding the model to the view Set up the Graph PlotModel The data Add the data to the

WPF在代码中创建DataTemplate时候的异常

今天写段程序用到了在代码中手动创建DataTemplate, var factory = new FrameworkElementFactory(typeof(OperationColumn));    returnnewDataTemplate() { VisualTree = factory }; 运行的时候出现如下异常: FrameworkElementFactory 必须位于此操作的密封模板中. 在 System.Windows.FrameworkElementFactory.Insta

wpf中如何在xaml中绑定cs中类的属性

cs代码:/// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); ContentGrid.DataContext = this; this.Path = "数据绑定"; } public string Path { get; set;

WPF中在XAML中实现数据类型转换的两种方法

熟悉数据绑定的朋友都知道,当我们在Model中获取一个对象的数据,常常需要对其进行数据转换后显示在UI界面上,比如你用bool类型存储了一个人的性别,但是在界面上却需要经过转化后显示为男或女: 今天又把数据绑定部分又看了一下,在这里就算是做个总结吧! 方法一:当我们定义一个类,该类中又有该类类型的一个属性,那么如果我们只是在XAML中使用简单的数据绑定的话,程序就会出现问题,究其原因就是程序无法正确对该类的对象的类类型的属性无法正确转化,所以我们需要自定义一个转换类,该类继承TypeConver

在 WPF 程序中使用 MVVM 模式

MVVM 模式是一个很久之前的技术了,最近因为一个项目的原因,需要使用 WPF 技术,所以,重新翻出来从前的一段程序,重温一下当年的技术. MVVM 模式 MVVM 实际上涉及三个部分,Model, View 和 ViewModel ,三者的关系如下图所示. 在三部分的关系中,视图显示的内容和操作完全依赖于 ViewModel. Model 是应用程序的核心,代表着最大.最重要的业务资产,因为它记录了所有复杂的业务实体.它们之间的关系以及它们的功能. Model 之上是 ViewModel.Vi

C#第七次作业(WPF&amp;XAML)

WPF 为Windows Presentation Foundation的首字母缩写 ,中文译为“Windows呈现基础”[1],其原来代号为“Avalon”,因与“我佩服”拼音首字母组合一样,国内有人调侃地称之为“我佩服”.由 .NET Framework 3.0 开始引入,与 Windows Communication Foundation及 Windows Workflow Foundation并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库. 程序人员与设

在iOS中创建静态库

如果你作为iOS开发者已经有一段时间,可能会有一套属于自己的类和工具函数,它们在你的大多数项目中被重用. 重用代码的最简单方法是简单的 拷贝/粘贴 源文件.然而,这种方法很快就会成为维护时的噩梦.因为每个app都有自己的一份代码副本,你很难在修复bug或者升级时保证所有副本的同步. 这就是静态库要拯救你的.一个静态库是若干个类,函数,定义和资源的包装,你可以将其打包并很容易的在项目之间共享. 在本教程中,你将用两种方法亲手创建你自己的通用静态库. 为了获得最佳效果,你应该熟悉Objective-