创建ListView后,进入GridView创建column集合。
xaml:
<ListView x:Name="UserList" HorizontalAlignment="Left" Height="350" Margin="10,10,0,0" VerticalAlignment="Top" Width="766">
<ListView.View>
<GridView >
<GridViewColumn Header="序号" Width="50"/>
<GridViewColumn Header="账号" Width="200"/>
<GridViewColumn Header="密码" Width="200"/>
</GridView>
</ListView.View>
</ListView>
listview控件可以和ObservableCollection变量进行绑定,当ObservableCollection变量新增删除时,会自动向listview控件发送消息来通知控件进行绘制。
using System.Collections.ObjectModel; //ObservableCollection
private static ObservableCollection<UserData> List = new ObservableCollection<UserData>();
//UserData的定义:
class UserData
{
private string _uin;
private string _pass;
private int _id;
public string uin
{
get { return _uin; }
set {
_uin = value;
}
}
public string pass
{
get { return _pass; }
set {
_pass = value;
}
}
public int id
{
get { return _id; }
set {
_id = value;
}
}
public UserData(int id ,string uin, string pass)
{
_id = id;
_uin = uin;
_pass = pass;
}
}
定义后,还需要与控件进行绑定,为此需要修改xaml。
xaml:
<GridViewColumn Header="序号" Width="50" DisplayMemberBinding="{Binding id}"/>
<GridViewColumn Header="账号" Width="200" DisplayMemberBinding="{Binding uin}"/>
<GridViewColumn Header="密码" Width="200" DisplayMemberBinding="{Binding pass}"/>
代码:
public MainWindow()
{
InitializeComponent();
UserList.ItemsSource = List;
}
但是ObservableCollection类型只是在新增删除时通知控件,在修改变量时不会通知,所以我们需要在定义自定义变量类型时加入通知机制。
using System.ComponentModel; //INotifyPropertyChanged
class UserData :INotifyPropertyChanged //通知接口
{
public event PropertyChangedEventHandler PropertyChanged;
private string _uin;
private string _pass;
private int _id;
public string uin
{
get { return _uin; }
set {
_uin = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("uin"));
}
}
public string pass
{
get { return _pass; }
set {
_pass = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("pass"));
}
}
public int id
{
get { return _id; }
set {
_id = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("id"));
}
}
public UserData(int id ,string uin, string pass)
{
_id = id;
_uin = uin;
_pass = pass;
}
}
这样就实现了listview 增加,减少,修改项目功能了。