您的位置:首页 > 其它

开发琐事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属性的值:

<ListBox x:Name=”pictureBox” DisplayMemberPath=”Name”

ItemsSource=”(Binding {DynamicResource photos}”

我们知道,依赖属性内建的垂直通知功能让UI对象间的绑定可以自己负责同步处理,但是对于.NET集合/对象来讲,它不具备这样的能力。为了让目标属性与源集合的更改保持同步,源集合必须实现一个叫INotifyCollectionChanged的接口,但通常我们只需要将集合类继承于ObservableCollection类即可。因为ObservableCollection实现了INotifyPropertyChanged和INotifyCollectionChanged接口。示例代码中我们这么去定义Photos集合类:

public class Photos : <Photo>

利用DataContext来作为共享数据源

常用标记:{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>

3.外层数据结构无权限访问内层数据结构问题

如 ObservableCollection<Game>

注意Game 类要声明public 扩大访问权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: