以下範例程式碼通過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(); } }}