复杂列表数据绑定.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6-复杂和列表数据绑定本章内容视图模型视图的数据上下文绑定列表控件绑定可枚举对象到列表控件使用数据模板数据模板分层数据模板复杂数据绑定当前项和各项中的导航排序、过滤、分组视图模型从 BL 商业逻辑中抽象出 UI 的方式视图模型ViewModel 即视图的模型为视图暴露公开属性用来绑定ViewModel 对象是做了大部分工作的对象除了 UIViewModel 需要:执行数据存储操作包含商业逻辑视图模型多数情况下 ViewModel 是 POCO 纯旧式 CLR 对象没什么特别的包含一点或没有 XAML/WPF/SL 依赖和引用但 ViewModel 不能绝对的从 XAML 平台解耦一些情况下需要从 INotifyPropertyChanged 继承视图模型 演示绑定列表控件DisplayMemberPath 和 SelectedValuePath绑定列表控件列表控件如 ListBox 和 ComboBox 同一时间显示了多项在 ViewModel/DataContext 中能够绑定到集合能够保存当前项的轨迹当绑定 DisplayMemberPath 指定属性显示时SelectedValuePath 指定了用于选择值的属性(一些 ID)DisplayMemberPath ListBox ItemsSource={Binding Phones} DisplayMemberPath=Model IsSynchronizedWithCurrentItem = True/如果想显示 PhonesStore 类的每个对象,并显示其某个属性ListBox 类提供了 DisplayMemberPath 属性SelectedValuePathListBox Name=ListBoxPeople ItemsSource={Binding} DisplayMemberPath=Name SelectedValuePath=Age /private void ListBoxPeople_SelectionChanged( object sender, SelectionChangedEventArgs e){ int index = ListBoxPerson.SelectedIndex; if (index 0) { return; } Person item = (Person) ListBoxPerson.SelectedItem; int value = (int) ListBoxPerson.SelectedValue; …}ItemsControl 类提供了路径来描述一些数据所选择的值当选择改变或某项被双击时,常使用数据DisplayMemberPath 和 SelectedValuePath 演示使用数据模板使用数据模板数据 template 模板允许从自定义类中显示更多的属性数据模板是元素树,在详细的上下文中展开如,每个 Phone 对象,可能将 Vendor, Model 和 Year 连接在一起逻辑模板看上去像Year: Vendor Model使用数据模板(2)ListBox ItemsSource={Binding} ListBox.ItemTemplate DataTemplate TextBlock TextBlock Text={Binding Year} /: TextBlock Text={Binding Vendor} / TextBlock Text={Binding Model} / /TextBlock /DataTemplate /ListBox.ItemTemplate/ListBox在 ListBox 中为 item 项目定义模板,创建一个 DataTemplate 元素使用数据模板(3)ListBox 控件有 ItemTemplate 属性接受 DataTemplate 类的实例ListBox 显示了所有集合中的项使用数据模板层级绑定层级绑定Hierarchical binding 层级绑定一般包含一些数量,运行时才知道的级别如,多项组成的树,每项有一些子项控件能够在外观上展开自己,像菜单或者树都需要层级绑定WPF 有内置的层级绑定支持,使用特定类型的数据模板知道如何显示当前数据级别,并知道哪里进入到下一级层级绑定(2) DataTemplate DataType={x:Type local:Family} TextBlock Text={Binding Path=FamilyName} / /DataTemplate/Window.Resources… TreeView DataContext={StaticResource Families} TreeViewItem

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档