WPF的ListBox

转载 2013年12月03日 14:09:52

一、ListBox系列索引

1、WPF ListBox基础(包括ListBox多列展示,ListBox实现分页效果,ListBox绑定XML数据源

2、ListBox 单击变大动画效果(使用模板、样式、绑定数据源等)

二 ListBox基础:包括ListBox多列展示,ListBox实现分页效果,ListBox绑定XML数据源。

1.ListBox多列展示

<ListBox>
           <ListBox.ItemsPanel>
               <ItemsPanelTemplate>
                   <UniformGrid Columns="4"/>
               </ItemsPanelTemplate>
           </ListBox.ItemsPanel>
 
           <ListBoxItem>Item1</ListBoxItem>
           <ListBoxItem>Item2</ListBoxItem>
           <ListBoxItem>Item3</ListBoxItem>
           <ListBoxItem>Item4</ListBoxItem>
           <ListBoxItem>Item5</ListBoxItem>
           <ListBoxItem>Item6</ListBoxItem>
           <ListBoxItem>Item7</ListBoxItem>
           <ListBoxItem>Item8</ListBoxItem>
           <ListBoxItem>Item9</ListBoxItem>
           <ListBoxItem>Item10</ListBoxItem>
           <ListBoxItem>Item11</ListBoxItem>
           <ListBoxItem>Item12</ListBoxItem>
           <ListBoxItem>Item13</ListBoxItem>
           <ListBoxItem>Item14</ListBoxItem>
 </ListBox>
效果图

如果要让ListBox横向显示,并自动换行,作如下设置即可。

<ListBox  Margin="0,280,49,311" ItemTemplate="{StaticResource gridDataTemplate1}" IsSynchronizedWithCurrentItem="True" 
                ScrollViewer.HorizontalScrollBarVisibility="Disabled"  ItemsSource="{Binding}"
                Name="listBox6" SelectedIndex="0" HorizontalAlignment="Right" Width="238">
          <ListBox.ItemsPanel>
              <ItemsPanelTemplate>     
                  <WrapPanel IsItemsHost="True"></WrapPanel>
              </ItemsPanelTemplate>
          </ListBox.ItemsPanel>
      </ListBox>

  

2.Listview/ListBox use CollectionViewSource.Filter event to show data

源码:http://code.msdn.microsoft.com/CSWPFPaging-ce1ce482

效果图:

3.Listview获得XML数据源

下面是XML文件,文件名:XMLFile1.xml 

 

<?xml version="1.0" encoding="utf-8" ?>
<peopleInfo>
    <person>
        <ID>1</ID>
        <Name>John Doe</Name>
        <Balance>100</Balance>
    </person>
    <person>
        <ID>2</ID>
        <Name>Jane Dorkenheimer</Name>
        <Balance>-209</Balance>
    </person>
    <person>
        <ID>3</ID>
        <Name>Fred Porkroomio</Name>
        <Balance>0</Balance>
    </person>
    <person>
        <ID>4</ID>
        <Name>Mike Dpike</Name>
        <Balance>550</Balance>
    </person>
    <person>
        <ID>5</ID>
        <Name>Boris</Name>
        <Balance>0</Balance>
    </person>
    <person>
        <ID>6</ID>
        <Name>Doris</Name>
        <Balance>25</Balance>
    </person>
</peopleInfo>

 

下面是xaml代码

<Window x:Class="WpfApplicationSummer.Window1"
    xmlns:local="clr-namespace:WpfApplicationSummer"
    Title="Window1" Height="300" Width="300">
    <Window.Resources>
        <XmlDataProvider x:Key="myXML" Source="XMLFile1.xml" XPath="/peopleInfo/*"></XmlDataProvider>  
        <DataTemplate x:Key="myTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Name="xx"/>
                    <ColumnDefinition Name="xxy"/>
                    <ColumnDefinition Name="xxyy"/>
                </Grid.ColumnDefinitions> 
                <TextBlock Grid.Column="0" Text="{Binding XPath= ID}"/>
                <TextBlock Grid.Column="1" Text="{Binding XPath=Name}"/>
                <TextBlock Grid.Column="2" Text="{Binding XPath=Balance}"/>
            </Grid>        
        </DataTemplate>        
        <Style x:Key="myListViewItemStyle">
            <Setter Property="ListViewItem.Background" Value="Yellow"/>
        </Style>    
    </Window.Resources>
    <Grid>
        <ListView ItemsSource="{Binding Source={StaticResource myXML}}" ItemTemplate="{Binding myTemplate}"
                  Style="{StaticResource myListViewItemStyle}" Height="200" ></ListView>
    </Grid>
</Window>

效果如上图。

WPF之ListBox用法之一

介绍ItemTemplate用法以及在ItemTemplate模板中使用ListBoxItem属性的方法。 实现如下效果(点击某一项的时候该项图片进行放大): C#代码: using Syste...
  • lk13962517093
  • lk13962517093
  • 2014年03月25日 00:10
  • 5940

WPF - ListBox显示任意内容

WFP是非常强大的。ListBox是一个很常用的控件,看了一下它的items属性,定义如下: public ItemCollection Items { get; } 这是一个collection...
  • zj510
  • zj510
  • 2013年03月02日 11:58
  • 6021

WPF ListBox

一、ListBox系列索引 1、WPF ListBox基础(包括ListBox多列展示,ListBox实现分页效果,ListBox绑定XML数据源) 2、ListBox 单击变大动画效果(使用模板...
  • Samsone
  • Samsone
  • 2012年01月12日 09:43
  • 39276

WPF:ListBox 利用ItemContainerStyle改变ListBoxItem样式

上篇文章中的ItemContainerStyle 只是默认的样式,但是很多时候我们做鼠标悬浮操作时都想有其它的效果,比如改变ListBoxItem的背景或者边框,再者改变字体大小。     前面提到的...
  • duanzi_peng
  • duanzi_peng
  • 2017年04月17日 13:47
  • 2456

WPF中关于ListBox绑定数据的问题

在定义ListBox的ItemSource绑定时,出现了初次绑定有数据,但是数据变化时视图没有更新的情况。...
  • loveyou388i
  • loveyou388i
  • 2017年05月03日 09:19
  • 821

WPF学习笔记——ListBox用ItemsSource绑定数据源

protected class UserItem { public UserItem(int Id, string Name, bool IsActived) ...
  • leftfist
  • leftfist
  • 2014年05月10日 13:37
  • 28462

WPF中ListBox控件的使用

环境:VS2008 SP1+Northwind数据库1.直接在代码中使用ItemsSource进行绑定Data.NorthwindDataContext context = new Data.Nort...
  • Teng_s2000
  • Teng_s2000
  • 2008年12月11日 12:41
  • 16087

WPF listBox 显示每个Item的index值

在显示出来的Item中显示出当前Item的index值 Xaml文件如下:
  • SANYUNI
  • SANYUNI
  • 2015年05月08日 09:02
  • 1197

wpf动态生成ListBox 及添加ListBoxItem 并定义样式

//创建一个ListBoxListBox list=new ListBox();//创建一个ListBoxIemListBoxItem item = new ListBoxItem();//定义Lis...
  • quboeric
  • quboeric
  • 2011年04月14日 21:48
  • 6576

WPF ListBox获取选中内容

首先,确定你的listbox的item是什么类型: 1)文本类型     一般是通过如下简单代码添加的item:     listBox.Items.Add("text"); // item直接...
  • free4294
  • free4294
  • 2012年01月10日 10:54
  • 7593
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WPF的ListBox
举报原因:
原因补充:

(最多只允许输入30个字)