WPF 数据绑定 定制一个集合的视图
来源:互联网 发布:淘宝主图视频尺寸 编辑:程序博客网 时间:2024/05/22 01:43
无论何时绑定一个集合,都会有一个默认的视图隐式被插入到源对象和目标对象之间,该视图(实现ICollectionView接口的对象),存储当前信息。
排序
//排序private void SortHelper(string propertyName){ //返回给定源的默认视图 //ICollectionView view = CollectionViewSource.GetDefaultView(this.FindResource("photoList"); ICollectionView view = CollectionViewSource.GetDefaultView(pl); //ICollectionView的SortDescriptions属性来控制视图排序 if (view.SortDescriptions.Count > 0 && view.SortDescriptions[0].PropertyName == propertyName && view.SortDescriptions[0].Direction == ListSortDirection.Ascending) { view.SortDescriptions.Clear(); view.SortDescriptions.Add(new SortDescription(propertyName, ListSortDirection.Descending)); } else { view.SortDescriptions.Clear(); view.SortDescriptions.Add(new SortDescription(propertyName, ListSortDirection.Ascending)); }}//调用SortHelper("Name");
分组
//转换时间为指定格式class DateTimeToDateConverter : IValueConverter{ #region IValueConverter 成员 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return ((DateTime)value).ToString("dd/MM/yyyy"); } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } #endregion}//分组private void GroupHelper(string propertyName){ ICollectionView view = CollectionViewSource.GetDefaultView(pl); //ICollectionView的GroupDescriptions属性来控制视图排序 view.GroupDescriptions.Clear(); //用指定属性名,转换器分组 view.GroupDescriptions.Add(new PropertyGroupDescription(propertyName, new DateTimeToDateConverter()));}//调用,按DateTime属性分组GroupHelper("DateTime");
<ListBox x:Name="listBox1" SelectedValuePath="Name" ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True" SelectionChanged="listBox2_SelectionChanged"> <ListBox.GroupStyle> <GroupStyle> <!-- 定义分组头外观 --> <GroupStyle.HeaderTemplate> <!-- 数据模板会有一特殊CollectionViewGroup对象数据上下文 --> <DataTemplate> <Border BorderBrush="Black" BorderThickness="1"> <!-- 该上下文包含一Name属性表示每个分组的名称,需要绑定 --> <TextBlock Text="{Binding Path=Name}" FontWeight="Bold"/> </Border> </DataTemplate> </GroupStyle.HeaderTemplate> </GroupStyle> </ListBox.GroupStyle></ListBox>
过滤
//过滤private void FilterHelper(){ ICollectionView view = CollectionViewSource.GetDefaultView(pl); //ICollectionView的Filter委托对象,设置后会马上回调 //该委托的工作就是决定某项的显示(返回true)隐藏(返回false) //要删除该过滤,只需Filter = null view.Filter = delegate(object o) { return (DateTime.Now - (o as PhotoModel).DateTime).Days <= 1; };}//调用FilterHelper();
- WPF 数据绑定 定制一个集合的视图
- WPF 数据绑定 定制一个集合的视图 导航
- WPF 数据绑定 定制一个集合的视图 数据提供程序
- WPF入门(七)绑定一个集合
- WPF Treeview 无限分级绑定集合数据
- WPF 中DataGrid控件绑定数据的一个例子
- wpf combobox数据绑定并添加一个额外的选项
- 【wpf】wpf对数据的绑定验证
- wpf的datagrid绑定数据
- WPF数据绑定的学习
- WPF一个绑定格式化显示的写法
- WPF视图绑定的Model类的优雅实现
- WPF TextBox绑定数据的简单应用
- WPF的数据绑定笔记摘录
- WPF PasswordBox.Password 的数据绑定
- WPF TreeView 的数据绑定(分层)
- WPF combox数据绑定的问题
- WPF的TreeView数据绑定基础
- [Android实例] Android 实例SOCKET发送HTTP请求
- Android流量统计TrafficStats类的使用
- 面试为什么要设多位面试官?
- 开发REST Web Service
- Quartz+spring实例应用
- WPF 数据绑定 定制一个集合的视图
- 7大细节预示你面试成功
- 英语面试de秘诀
- Overview of Apache Ant Tasks
- 各种数据库连接方法
- Linux 下压缩与解压.zip和.rar
- C结构中函数指针变量的初始化 ----由C到面向对象的距离
- 关于前置++和后置++
- 常用数据库的驱动程序及JDBC URL: