附WPF书籍推荐:
1、不要为书籍经销商的炒作蒙蔽,国内翻译的《WPF揭秘》被褒扬成经典,其实我认为该书浅尝则止,不够详尽是其最致命的弱点
2、《WPF程序设计指南App=Code+markup》是本好书,仔细研读还能学到很多开发技巧,但书籍将code与markup独立开有失,如果能
将其结合起来并内容章节仔细组织将会更受欢迎。
3、《Pro WPF in C# 2008 Windows Presentation Foundation with .NET 3.5 SECOND EDITION》是本好书,
我认为和《OReilly.Programming.WPF.2nd.Edition.Aug.2007》不分伯仲,两本书对WPF内容都解释十分详尽,章节设置也十分合理
适合快速掌握WPF开发知识,是学习WPF的首选。
4、至于其他书籍各位仁者见仁,智者见智,至于书店里某本国产WPF编程书籍,我不想多言,只是我建议改名为《简单了解WPF》也许更合理。
5、书有千种,各有特色,计算机编程开发书籍国产书籍有精品但不多,对新出现的技术如果没有在市场上使用3年,还是建议首选国外书籍,
希望我这句话不要让有些人不高兴,事实如此,要反驳的话请象李小龙一样站出来,打出一套好拳给大家看看。
//************************************************************
数据绑定就是将各种数据与用户展现控件进行关联的过程。WPF的数据绑定机制可以以最少的代码方便地处理这样的关联。
简单数据绑定
1 无数据绑定
在实现这样的用户交互的时候:
在没有任何数据绑定机制实现的时候无非采用
this.nameTextBox.Text = person.Name;
this.ageTextBox.Text = person.Age.ToString();
这样的赋值的方法,而一旦数据改变了,将界面的值写回给person对象。
1.1对象改变
我们现在需要当对象发生改变的时候,UI的现实如何同步跟着改变呢?
实现起来还是比较复杂的,看如下代码就明白了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;//INotifyPropertyChanged
namespace SimpleDataBinding
{
class Person:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void Notify(string PropName)
{
if (this.PropertyChanged != null)
{
PropertyChanged(this,new PropertyChangedEventArgs(PropName));
}
}
public Person()
{
_Age = 0;
_name = "Null";
}
private string _name;
public string Name
{
get
{ return _name; }
set
{
if (value == _name)
{ return; }
_name = value;//注意:不能用this.Name来赋值,如果这样形成循环调用,栈溢出
Notify("Name");
}
}
private int _Age;
public int Age
{
get
{ return _Age; }
set
{
if (value == _Age) return;
_Age = value;
Notify("Age");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.In