以下示例代码通过ListBox来绑定一个实体类的数据,如下:
1、新建一个类Student.cs文件
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; namespace Demo { public class Student : INotifyPropertyChanged { private string name; public event PropertyChangedEventHandler PropertyChanged; public Student(string name) { this.name = name; } public string Name { get { return name; } set { this.name = value; OnPropertyChanged("Name"); } } public void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } } }
MainWindow.xaml
<Window x:Class="Demo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:src="clr-namespace:Demo" Title="WPF数据绑定" Height="350" Width="525" WindowStyle="ToolWindow"> <Grid> <Grid.Resources> <src:Data x:Key="students"></src:Data> <DataTemplate x:Key="stuDatas"> <TextBlock Text="{Binding Path=Name}"></TextBlock> </DataTemplate> </Grid.Resources> <ListBox ItemTemplate="{StaticResource stuDatas}" Height="23" HorizontalAlignment="Left" Margin="22,12,0,0" Name="listBox1" VerticalAlignment="Top" Width="131"> <ListBox.ItemsSource> <Binding Source="{StaticResource students }"></Binding> </ListBox.ItemsSource> </ListBox> </Grid> </Window>
MainWindow.xaml.cs文件内容:
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.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Media.Animation; namespace Demo { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } }