实体类:

员工类:

public class Department : ObservableCollection<Employee>

{

public string DepName { get; set; }

public ObservableCollection<Employee> Employees { get; set; }
}

部门类:

public class Employee
{
public int Number { get; set; } //工号
public string Name { get; set; } //姓名
public string Sex { get; set; } //性别
public int BirthYear { get; set; } //出生年份
}

部门集合类:

public class DepartmentList : ObservableCollection<Department>
{
public DepartmentList()
{
ObservableCollection<Employee> employee1 = new ObservableCollection<Employee>
{
new Employee{Number=,Name="netboy",Sex="boy",BirthYear=},
new Employee{Number=,Name="dandan",Sex="girl",BirthYear=},
new Employee{Number=,Name="xiaobai",Sex="girl",BirthYear=}
}; ObservableCollection<Employee> employee2 = new ObservableCollection<Employee>
{
new Employee{Number=,Name="kaizi",Sex="girl",BirthYear=},
new Employee{Number=,Name="yangzai",Sex="gril",BirthYear=}
}; this.Add(new Department { DepName = "技术部", Employees = employee1 });
this.Add(new Department { DepName = "商务部", Employees = employee2 });
//ObservableCollection<Department> deparment = new ObservableCollection<Department>
//{
// new Department{DepName="tengfei",Employees=employee1},
// new Department{DepName="google",Employees=employee2}
//};
}

UI,XAML:

<Window x:Class="CollectionViewSourceDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CollectionViewSourceDemo.Models"
Title="MainWindow" Height="500" Width="1000">
<Window.Resources>
<local:DepartmentList x:Key="deplist"/>
<CollectionViewSource x:Key="departmentView" Source="{StaticResource ResourceKey=deplist}"/>
<DataTemplate x:Key="dtEmployees">
<StackPanel Height="50" HorizontalAlignment="Center" Width="480" VerticalAlignment="Top" Orientation="Horizontal">
<TextBlock Height="50" HorizontalAlignment="Left" Width="90" Text="{Binding Number}"/>
<TextBlock Height="50" Width="120" Text="{Binding Name}"/>
<TextBlock Height="50" Width="120" Text="{Binding BirthYear}"/>
<TextBlock Height="50" Width="120" Text="{Binding Sex}"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid>
<StackPanel>
<TextBlock Width="200" Height="50" FontSize="36" Text="请选择部门:"/>
<ListBox Name="lb1" Height="100" Width="156" DisplayMemberPath="DepName" ItemsSource="{Binding Source={StaticResource departmentView}}"
HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="32" />
<TextBlock Height="62" Width="111" HorizontalAlignment="Left" VerticalAlignment="Top"
Text="{Binding Path=DepName,Source={StaticResource departmentView}}" Foreground="Red" FontSize="32" />
<TextBlock Text="员工列表" FontSize="20" Foreground="Blue"/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="工号" Margin="5" />
<TextBlock Text="名字" Margin="70,5,5,5"/>
<TextBlock Text="出生日期" Margin="70,5,5,5" />
<TextBlock Text="性别" Margin="75,5,5,5"/>
</StackPanel>
<ListBox Name="lb2" ItemsSource="{Binding Path=Employees,Source={StaticResource departmentView}}"
ItemTemplate="{StaticResource dtEmployees} />
</StackPanel>
</Grid>
</Window>

wpf CollectionViewSource的运用的更多相关文章

  1. wpf CollectionViewSource与ListBox的折叠、分组显示,及输入关键字 Filter的筛选

    在wpf中虽然ObservableCollection<T>作为ListBox的Itemsource,很好,很强大!但是CollectionViewSource与ListBox才是天作之合 ...

  2. WPF CollectionViewSource CollectionView

    CollectionView 通俗讲就是可以对你绑定的集合可以进行 分组,排序 等功能 CollectionViewSource  根据字面意思是xxx的数据源 详细的介绍还是看 http://www ...

  3. wpf,CollectionViewSource,使用数据过滤 筛选 功能。

    class TextListBoxVMpublic : ViewModelBase { public TextListBoxVMpublic() { var list = this.GetEmploy ...

  4. [wpf] collectionViewsource 排序 和分组

    xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase" xmlns:swd="clr-n ...

  5. 谈谈WPF中的CollectionView与CollectionViewSource (1)

    原文:谈谈WPF中的CollectionView与CollectionViewSource (1) 谈谈WPF中的CollectionView与CollectionViewSource (1)     ...

  6. [Wpf]在C#中添加 collectionViewSource

    Products = new ObservableCollection<Product>(products); ProductOptions = new ObservableCollect ...

  7. 谈谈WPF中的CollectionView与CollectionViewSource

    https://www.cnblogs.com/zhouyinhui/archive/2007/12/07/987076.html

  8. WPF绑定到集合

    什么是集合视图? 集合视图是位于绑定源集合顶部的一层,您可以通过它使用排序.筛选和分组查询来导航和显示源集合,而无需更改基础源集合本身.集合视图还维护着一个指向集合中的当前项的指针.如果源集合实现了 ...

  9. WPF入门教程系列十八——WPF中的数据绑定(四)

    六.排序 如果想以特定的方式对数据进行排序,可以绑定到 CollectionViewSource,而不是直接绑定到 ObjectDataProvider.CollectionViewSource 则会 ...

随机推荐

  1. 第六十八节,htnl全局属性和其他属性

    htnl全局属性和其他属性 学习要点: 1.实体 2.元数据 3.全局属性 本章主要探讨HTML5中的HTML实体.以及HTML核心构成的元数据,最后了解一下HTML中的全局属性. 一.实体 HTML ...

  2. Struts2-1.配置&与第一个应用

    配置流程 1.web项目中导入Strus2应用需要的包,复制到项目的lib文件夹下 点击此处下载需要的包,解压后复制进去即可:http://pan.baidu.com/s/1jHhjd2Y 2.编写S ...

  3. Java中自己实现枚举

    public class MyEnum { private final String name; public  static final MyEnum red = new MyEnum(" ...

  4. 为啥使用Iscroll.js之后,a不能触发点击事件?

    原因:是iscroll.js阻止了a的行为. 解决方法:打开iscroll-probe.js,然后找到preventDefaultException方法. 然后修改为: // preventDefau ...

  5. 转-CSS优先级(权重)解析

    1.多个选择器可能会选择同一个元素,有3个规则,从上到下重要性降低: !important的用户样式 !important的作者样式 作者样式 用户样式 浏览器定义的样式 2. CSS规范为不同类型的 ...

  6. Spring自动扫描

    需要在Springde 配置文件中加入 <context:component-scan base-package="com.annoation"> base-packa ...

  7. Linux启动kettle及linux和windows中kettle往hdfs中写数据(3)

    在xmanager中的xshell运行进入图形化界面 sh spoon.sh 新建一个job

  8. POCO系列之——延迟加载

    当我们进行查询的时候,哪些关系的数据将会被加载到内存呢?所有相关的对象都需要吗?在一些场合可能有意义,例如,当查询的实体仅仅拥有一个相关的子实体,但是,多数情况下,你可能只需要加载部分数据,或者你喜欢 ...

  9. $addToSet $push

    结果:

  10. Sharepoint 的定制 - 代码附加内容编辑器

    //来源:http://www.cnblogs.com/codingcow/articles/69143.html Sharepoint是一种非常新而且很有用的技术. 现在微软把基本的功能集成到了Wi ...