zoukankan      html  css  js  c++  java
  • WPF笔记(4)ListBox和ListView

         许多控件都派生自ControlControl类,例如:Window、button、ScrollViewer等,他们都有一个Content属性,可以用来添加其他元素。下面要介绍的时Control的另一个分支:ItemsControl。它直接从Control继承。从ItemsControl继承的控件可以显示多个Item。这些控件包括:Menus、Toolbars、statusbars、treeview,listview等。

         Listbox和Combox,TabControl一样,都派生自Selector抽象类。而ListView则派生自ListBox。

    Control
           ItemsControl
                     Selector (abstract)
                                 ComboBox
                                 ListBox

                                       ListView
                                 TabControl

         Listbox可以允许用户选择一个和多个Item。ComboBox和LlistBox不同的是,他不会一直显示Items列表,而是只有在下拉的时候才会显示。

         简单介绍ListBox:

         SelectionMode:允许选择一个或多个项目。

         ScrollIntoView:滚动到合适位置,以便选择项可见。

         SelectionChangedEventArgs:此类含有两个属性:AddItems和RemovedItems,在允许多项选择时会用到。

         因为在ListBox中的项都是同一类型,所以我们还可以用到下面三个属性:

         DisplayMemberpath:这是ItemsControl的属性,可以绑定要显示的属性的name。

         SelectedValuePath:来自Selector类。用来设置要表示的Item值的属性的名称。

         SelectedValue:获取由SelectedValuePath表示的Item的属性值。

    如:DisplayMemberpath = name;SelectedValuePath= Value;

    则在Listbox中界面显示的是Itme的name属性,但我们通过SelectedValue获取的却是Item的Value属性。

         SetBinding和DataContext:数据绑定和上下文。

    如:lstbox.SetBinding(ListBox.SelectedValueProperty, "Background");
    lstbox.DataContext = this;

    表示将listbox的SelecValue属性与this对象的Backgroud属性绑定。

         ListView

         ListBox可以完成大多数显示操作。但是对于Deitails视图来说,因为它需要多列和列标题。在这种情况下就需要ListView控件。Listview直接继承自ListBox。ListView只比ListBox多了一个属性:View(ViewBase类型)。如果View为null,那么ListView就是一个Listbox。

         目前从ViewBase继承的类只有一个GridView;他可以通过多列来表示对象。GridView的核心属性是Columns。每一列都是一个GridViewColumn,它包括列标题、宽度、要表示的Item等。

         下面是ListView的普通用法:首先定义一个要显示的类。然后创建一个ListView绑定该类进行显示。

    Code

         

         由于各个列显示的对象类型可能不一样,例如第一列显示text。第二列显示一个combox。在这样的情况下,就需要使用模板。如DataTemplate。然后将模板绑定到GridViewColumn的CellTemplate属性。

    如:

    Code

         在上面将Textblock的text属性绑定到了"Value"属性。所以就不需要再使用DisplayMemberBinding 属性。

         

         

  • 相关阅读:
    hdu4059 The Boss on Mars
    cf475D CGCDSSQ
    HDU
    cf1447D Catching Cheaters
    cf1440 Greedy Shopping
    Treats for the Cows
    dp废物学会了记录路径
    D. Jzzhu and Cities
    cf1359D Yet Another Yet Another Task
    关于sg函数打表的理解
  • 原文地址:https://www.cnblogs.com/jyz/p/1295536.html
Copyright © 2011-2022 走看看