ListBox 的结构

<Page
    x:Class="XamlDemo.Controls.ListBoxDemo"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:XamlDemo.Controls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="Transparent">
        <StackPanel Margin="120 0 0 0" Orientation="Horizontal">

            <!--ListBox - 列表框-->

            <!--xaml 方式为 ListBox 添加数据-->
            <ListBox x:Name="listBox" Width="200" Height="300" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top">
                <ListBox.Items>
                    <ListBoxItem Content="ListBoxItem1" />
                    <ListBoxItem Content="ListBoxItem2" />
                    <ListBoxItem Content="ListBoxItem3" />
                </ListBox.Items>
            </ListBox>

            <!--
                后台绑定方式为 ListBox 添加数据
                DisplayMemberPath - 指定数据源中需要被显示出来的字段名称
            -->
            <ListBox x:Name="listBoxWithBinding" SelectionMode="Multiple" DisplayMemberPath="Name" Width="200" Height="300" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top" />

            <!--通过模板设置 ListBox 的每一项的布局和数据-->
            <ListBox ItemsSource="{Binding ItemsSource, ElementName=listBoxWithBinding}" SelectionMode="Multiple" Width="200" Height="300" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding Name}" />
                            <TextBlock Text="{Binding Age}" Margin="5 0 0 0" />
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <!--
                            VirtualizingStackPanel - 虚拟化的 StackPanel(即仅生成需要显示的 UI 元素。当绑定了大量数据,而某时仅显示其中一小部分的时候,使用此控件则可大幅提高呈现效率)
                                Orientation - 数据的排列方式(垂直排列或水平排列,也就是说 ListBox 也可以水平排列)
                                VirtualizationMode - 虚拟化的模式
                                    Recycling - item 的容器会被重用,默认值
                                    Standard - 每个 item 都有自己独立的容器

                            注:ListBox 默认已经使用了 VirtualizingStackPanel,但是其对于变高的 DataTemplate 来说支持得不好
                        -->
                        <VirtualizingStackPanel Orientation="Vertical" VirtualizingStackPanel.VirtualizationMode="Recycling" />
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
            </ListBox>

        </StackPanel>
    </Grid>
</Page>
时间: 2024-10-27 08:38:43

ListBox 的结构的相关文章

MVC5 + EF6 + Bootstrap3 (8) HtmlHelper用法大全(上)

文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-httphelper-part1.html 上一节:MVC5 + EF6 + Bootstrap3 (7) Bootstrap的栅格系统 源码下载:点我下载 目录: HtmlHelper简介 准备工作 链接 ActionLink链接 RouteLink链接 input控件 TextBox输入框 Hidden隐藏域 Password密码输入框 Che

Delphi中根据分类数据生成树形结构的最优方法

一. 引言:    TreeView控件适合于表示具有多层次关系的数据.它以简洁的界面,表现形式清晰.形象,操作简单而深受用户喜爱.而且用它可以实现ListView.ListBox所无法实现的很多功能,因而受到广大程序员的青睐.    树形结构在Windows环境中被普遍应用,但在数据库开发中面对层次多.结构复杂的数据,如何快速构造树形目录并实现导航呢?    二. 实现关键技术:    在Delphi提供的控件中包含了TreeView控件,但树的具体形成还需要用户编写代码.即它的列表项要在程序

Win32 SDK:ListBox 为什么不整个 LB_SETTEXT

Win32 & SDK: ListBox 有个 LB_GETTEXT,为什么没有 LB_SETTEXT,想修改指定Item的Text,还真不容易. 自已写了一个,支持单选和多选模式,部分代码: void updateListBoxItem(HWND hwnd_listbox, const int index, const char *text) { BOOL indexIsSelected = FALSE; //当前的 index 是否被选中 int focusedIndex = SendMes

Template、ItemsPanel、ItemContainerStyle、ItemTemplate(包括ListBox的Item子项是横向排列)

Template.ItemsPanel.ItemContainerStyle.ItemTemplate 分类: WPF2011-10-12 10:13 4716人阅读 评论(0) 收藏 举报 datagridwpftree 先来看一张图(网上下的图,加了几个字) 实在是有够“乱”的,慢慢来理一下: 1.Template是指控件的样式 在WPF中所有继承自contentcontrol类的控件都含有此属性,(继承自FrameworkElementdl类的TextBlock等控件无).Template

C#窗体控件简介ListBox

ListBox 控件ListBox 控件又称列表框,它显示一个项目列表供用户选择.在列表框中,用户一次可以选择一项,也可以选择多项.1.常用属性:(1) Items属性: 用于存放列表框中的列表项,是一个集合.通过该属性,可以添加列表项.移除列表项和获得列表项的数目.(2)MultiColumn 属性:用来获取或设置一个值,该值指示ListBox是否支持多列.值为 true 时表示支持多列,值为 false 时不支持多列.当使用多列模式时,可以使控件得以显示更多可见项.(3)ColumnWidt

类中定义的嵌套结构,有什么作用?

class A { struct B; class C { .......... } B* b; public: void f(); void g(); }; 第一是命名空间的问题,在类里面定义的类或者结构不怕重名,比如说模板类每个类都有个iterator嵌套类,重名也不要紧,更大的好处是还可以利用这个特性写模板函数: template<class T, class Func> void foreach(T& container, Func f) { for(T::iterator i

WPF开发为按钮提供添加,删除和重新排列ListBox内容的功能

原文:WPF开发为按钮提供添加,删除和重新排列ListBox内容的功能 介绍 我有一种情况,我希望能够将项目添加到列表中,并在列表中移动项目,这似乎是使用a的最简单方法ListBox.我立刻想到了如何以通用的方式做到这一点,然后,也许,可以使用行为来做到这一点.这似乎是一个非常有用的想法.我决定以一种简单的方式为我正在开发的应用程序做这件事,但我想我会创建一个演示项目来探索这个想法.这是结果. 概观 该行为实际上有四个独立的部分,可以在一个类中执行不同的功能: 添加项目 将所选项目向上移动一个位

Day4 - 迭代器&amp;生成器、装饰器、Json &amp; pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青

linux命令格式,获取帮助及其目录结构简要理解

我们都知道,一台计算机要是没通电,和一堆废铁没什么区别.那么,通电开机进入系统后,会进入交互界面,等待用户操作,人与计算机交互界面有两种: GUI:图形用户接口.如我们平时使用的Windows  ,linux的X window,有KDE和GOME. CLI:命令行接口,使用的SHELL类型有bash ,csh,tcshell,zshell等. 例如:[[email protected] ~]# commandbin root:当前登录的用户名. dxlcentOS:当前主机的主机名.@是一个分隔