前端代码
<Grid>
<ListView x:Name="ListView1">
<ListView.View>
<GridView>
<GridViewColumn Header="序号" Width="60" DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="姓名" Width="60" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="性别" Width="60" DisplayMemberBinding="{Binding Sex}"/>
<GridViewColumn Header="电话" Width="60" DisplayMemberBinding="{Binding Pone}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
方法1
通过DataTable类进行绑定
using System.Data;
using System.Windows;
using System.Collections.ObjectModel;
using System.Windows.Controls;
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
DataTable dt1;
public MainWindow()
{
InitializeComponent();
dt1 = Creat();
for (int i = 0; i < 10; i++)
{
DataRow dr = dt1.NewRow();
dr[0] = 1;
dr[1] = "张三";
dr[2] = 0;
dr[3] = "123456789";
dt1.Rows.Add(dr);//向虚表里添加一行数据
}
//绑定数据
ListView1.DataContext = dt1;
ListView1.SetBinding(ListView.ItemsSourceProperty, new Binding());
}
//行数据虚表
public DataTable Creat()
{
DataTable dt = new DataTable();
DataColumn[] dc = new DataColumn[] {
new DataColumn("Id"),
new DataColumn("Name"),
new DataColumn("Sex"),
new DataColumn("Pone")
};
dt.Columns.AddRange(dc);
return dt;
}
}
方法二
通过 INotifyPropertyChanged 类进行绑定
List集合需要定义为 ObservableCollection类型
- 1.定义绑定数据类
//定义一个Data数据类并继承于INotifyPropertyChanged
public class Data : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public Data()
{
_id = Id;
_name = Name;
_sex = Sex;
_pone = Pone;
}
private int _id;
public int Id
{
get { return _id; }
set
{
if (_id != value) ;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Id"));
}
}
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Name"));
}
}
private int _sex;
public int Sex
{
get { return _sex; }
set
{
_sex = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Sex"));
}
}
private string _pone;
public string Pone
{
get { return _pone; }
set
{
_pone = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Pone"));
}
}
}
- 2.实现数据绑定
using System.ComponentModel;
using System.Data;
using System.Windows;
using System.Collections.ObjectModel;
using System.Windows.Controls;
namespace AvaloniaUI
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private static ObservableCollection<Data> List =new ObservableCollection<Data>();
public MainWindow()
{
InitializeComponent();
ListView1.ItemsSource = List;
List.Add(new Data() { Id = 1, Name = "张三", Sex = 0, Pone = "123456789" });
}
}
方法二对比方法一使用上更零活,而且数据为双向绑定,优先选择方法二