原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二)
上次学了点点Binding的皮毛, 然后就做别的事去了, 等回头再来看WPF的时候, 哈忘记了~
于是写个例子补一下, 在继续学习Binding.
1, 首先准备好一个类
public class Hero
{
public Hero(int id, string name, string skill, bool hasM)
{
this.Name = name;
this.Id = id;
this.Skill = skill;
this.HasM = hasM; }
public int Id { get; set; }
public string Name { get; set; }
public string Skill { get; set; }
public bool HasM { get; set; }
}
2, 在MainWindow中准备好数据
Dictionary<string, Hero> map = new Dictionary<string, Hero>(); private void InitDictionary()
{
Hero hero1 = new Hero(1, "刘备", "哭泣", true);
map.Add(hero1.Name, hero1);
Hero hero2 = new Hero(2, "官羽", "贪污", false);
map.Add(hero2.Name, hero2);
Hero hero3 = new Hero(3, "黄忠", "射击", true);
map.Add(hero3.Name, hero3);
Hero hero4 = new Hero(4, "魏延", "突击", true);
map.Add(hero4.Name, hero4);
Hero hero5 = new Hero(5, "马超", "单挑", false);
map.Add(hero5.Name, hero5);
Hero hero6 = new Hero(6, "曹仁", "防守", true);
map.Add(hero6.Name, hero6);
}
然后XAML这边是这样的
1, 先准备好template
<Window.Resources>
<DataTemplate x:Key="nameDT">
<TextBlock x:Name="textBoxName" Text="{Binding Name}" />
</DataTemplate>
<DataTemplate x:Key="skillDT">
<TextBlock x:Name="textBoxSkill" Text="{Binding Skill}" />
</DataTemplate>
<DataTemplate x:Key="hmDT">
<CheckBox x:Name="checkBoxJob" IsChecked="{Binding HasM}" />
</DataTemplate>
</Window.Resources>
2, 界面
<Grid Margin="5" >
<ListView x:Name="listViewStudent">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Id}" />
<GridViewColumn Header="姓名" CellTemplate="{StaticResource nameDT}" />
<GridViewColumn Header="技术" CellTemplate="{StaticResource skillDT}" />
<GridViewColumn Header="已婚" CellTemplate="{StaticResource hmDT}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
3, 就是上一篇笔记中记载的Binding方法了
public Window1()
{
InitializeComponent();
InitDictionary();
Binding binding = new Binding();
binding.Source = map;
binding.Path = new PropertyPath("Values");
listViewStudent.SetBinding(ListView.ItemsSourceProperty, binding);
}
好了, 运行!一切OK~
界面出来啦
aaarticlea/png;base64,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" alt="" />
等等! 好像和上次有点不太一样, 少了一步吧? 数据源没有实现INotifyPropertyChanged接口呢.
先不急, 测试下:
1, 加个button吧, XAML处的界面显示相关代码修改如下
<Grid Margin="5" >
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<ListView x:Name="listViewStudent">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Id}" />
<GridViewColumn Header="姓名" CellTemplate="{StaticResource nameDT}" />
<GridViewColumn Header="技术" CellTemplate="{StaticResource skillDT}" />
<GridViewColumn Header="已婚" CellTemplate="{StaticResource hjM}" />
</GridView>
</ListView.View>
</ListView>
<Button Grid.Row="1" Content="给官老爷正名!" Click="Button_Click" />
</Grid>
2, 填函数
private void Button_Click(object sender, RoutedEventArgs e)
{
map["官羽"].Name = "关羽";
map["官羽"].Skill = "单挑";
}
F5运行, 点击按钮, 发现没有得到预期的改变, 表格显示的数据动也不动. 好吧, 看来的确没有Binding, 只是单次的赋值而已, 没有"数据驱动"呀!
那么来补上准备数据源这一步
修改后的Hero类代码如下, 为了便于比较, 实现了Skill, 而不实现Name等其他属性.
public class Hero : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;//请注意 public Hero(int id, string name, string skill, bool hasJob)
{
this.Name = name;
this.Id = id;
this.Skill = skill;
this.HasM = hasM;
}
public int Id { get; set; }
public string Name { get; set; } public bool HasM { get; set; }
private string skill;
public string Skill
{
get
{
return skill;
}
set
{
skill = value;
//触发事件//请注意
if (PropertyChanged != null)
{
PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Skill"));
}
}
}
}
好了, F5运行, 效果如下
嗯, 效果实现, Skill的确是变了, Name没变.
Binding学习笔记一的复习到此结束, 可以看新内容了~
啊! ! 刚才的Binding有点意思呢, 我不那么写Binding, 而是改成
public Window1()
{
InitializeComponent();
InitDictionary();
// Binding binding = new Binding();
// binding.Source = map;
// binding.Path = new PropertyPath("Values");
// listViewStudent.SetBinding(ListView.ItemsSourceProperty, binding); listViewStudent.ItemsSource=map.Values; }
效果竟然一样! ! ! 这个可比textBox.Text的赋值智能多了呀...