开发琐事11.24
2011-12-20 11:43
155 查看
1. 关于C# setting的使用
在项目的setting.settings 图形界面里编辑变量名和变量值
用以下方式获得值
account = PostTracker.Properties.Settings.Default.Account;
所有的设置值自动保存在app.config里
2.wpf的数据绑定
可参照/article/5020499.html
绑定到集合
· 利用ItemsSource来绑定数据源
常用标记:{Binding Path =””} ItemSource DisplayMemberPath
通常来说这是我们在做以数据驱动为主的应用时最经常用到的绑定方式。WPF支持任何类型的.NET对象作为数据源绑定到WPF对象。对于所有的ItemsControl对象都有一个ItemsSource依赖属性,这是专门为数据绑定而准备的。ItemsSource的类型是IEnumerable,所以对于我们几乎所有的集合类型我们都可以轻易的改变成ItemsSource的源对象。通过以下语句我们可以将一个名为photos的集合赋予ListBox对象,并以显示Name属性的值:
我们知道,依赖属性内建的垂直通知功能让UI对象间的绑定可以自己负责同步处理,但是对于.NET集合/对象来讲,它不具备这样的能力。为了让目标属性与源集合的更改保持同步,源集合必须实现一个叫INotifyCollectionChanged的接口,但通常我们只需要将集合类继承于ObservableCollection类即可。因为ObservableCollection实现了INotifyPropertyChanged和INotifyCollectionChanged接口。示例代码中我们这么去定义Photos集合类:
利用DataContext来作为共享数据源
常用标记:{Binding Path=””} DataContext
顾名思义,DataContext就是数据上下文对象,它是为了避免多个对象共享一个数据源时重复的对所有对象显式地用binding标记每个Source/RelativeSource/ElementName,而把同一个数据源在上下文对象的某个范围内共享,这样当一个绑定没有显式的源对象时,WPF会便利逻辑数找到一个非空的DataContext为止。
例如我们可以通过以下代码给ListBox和Title设置绑定:
3.外层数据结构无权限访问内层数据结构问题
如 ObservableCollection<Game>
注意Game 类要声明public 扩大访问权限
在项目的setting.settings 图形界面里编辑变量名和变量值
用以下方式获得值
account = PostTracker.Properties.Settings.Default.Account;
所有的设置值自动保存在app.config里
2.wpf的数据绑定
可参照/article/5020499.html
绑定到集合
· 利用ItemsSource来绑定数据源
常用标记:{Binding Path =””} ItemSource DisplayMemberPath
通常来说这是我们在做以数据驱动为主的应用时最经常用到的绑定方式。WPF支持任何类型的.NET对象作为数据源绑定到WPF对象。对于所有的ItemsControl对象都有一个ItemsSource依赖属性,这是专门为数据绑定而准备的。ItemsSource的类型是IEnumerable,所以对于我们几乎所有的集合类型我们都可以轻易的改变成ItemsSource的源对象。通过以下语句我们可以将一个名为photos的集合赋予ListBox对象,并以显示Name属性的值:
<ListBox x:Name=”pictureBox” DisplayMemberPath=”Name” ItemsSource=”(Binding {DynamicResource photos}” |
public class Photos : <Photo> |
常用标记:{Binding Path=””} DataContext
顾名思义,DataContext就是数据上下文对象,它是为了避免多个对象共享一个数据源时重复的对所有对象显式地用binding标记每个Source/RelativeSource/ElementName,而把同一个数据源在上下文对象的某个范围内共享,这样当一个绑定没有显式的源对象时,WPF会便利逻辑数找到一个非空的DataContext为止。
例如我们可以通过以下代码给ListBox和Title设置绑定:
<StackPanel Orentation=”Vertical” Margin=”5” DataContext=”{DynamicResource photos}”> <Label x:Name=”TitleLabel” Content=”{Binding Path=Count}” DockPanel.Dock=”Bottom” /> <ListBox x:Name=”pictureBox” DisplayMemeberPath=”Name” ItemSource=”{Binding}” /> </StackPanel> |
如 ObservableCollection<Game>
注意Game 类要声明public 扩大访问权限
相关文章推荐
- 礼拜一,兔子回归~继续来码一码iOS开发琐事~
- 开发琐事 11.22
- 大数据早报:三星设立新人工智能研究中心 微软发布预览版SQL Server跨平台开发工具(11.24)
- Excel开发总结:关于C#导入导出excel的那些琐事
- Oracle & JSP 开发的小型信息管理系统 (一) 说明文档
- WAP应用开发环境就是这样搭建的
- 龙芯软件开发(23)-- PCI设备初始化
- 2007_07_21炸弹人开发日志
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 纪念日:服务构件环境(SCE)挑起企业级架构的栋梁,下一代的应用开发模式日渐清晰
- 文件过滤系统驱动开发Filemon学习笔记
- 2008年11月开发小技
- 网站建设网站开发流程
- 如何搭建Visual Studio的内核编程开发环境
- WinXP下USB驱动开发(一)
- 淘宝API开发系列--开篇概述
- 使用 Apache MINA 2 开发网络应用
- 迎国庆,华章送书第1季:Web前端开发图书试评员招募,样书免费领取!
- 软件开发之我剑!----项目设计,而立之年【原】
- OEA 框架演示 - 快过原型的开发