我的ListView在添加或删除项目时不会自行更新。此外,当我关闭并重新打开表单时,会出现更新列表。这是c#代码:
using Library;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
namespace Bajaj.ViewModels
{
#region Records...
public class _REC_LedgerGroup
{
public int sno { get; set; }
public int id { get; set; }
public string name { get; set; }
public string alias { get; set; }
public _REC_LedgerGroup(int sno, int id, string name, string alias)
{
this.sno = sno;
this.id = id;
this.name = name;
this.alias = alias;
}
}
#endregion
public class GroupListVM : ObservableCollection<_REC_LedgerGroup>
{
public GroupListVM()
: base()
{
CollectionChanged += GroupListVM_CollectionChanged;
Database DB = new Database();
DB.Open();
try
{
MySqlCommand command = DB.connection.CreateCommand();
command.CommandText = "select * from ledgergroups order by id;";
MySqlDataReader rdr = command.ExecuteReader();
if (rdr.HasRows)
{
List<_REC_LedgerGroup> RC = new List<_REC_LedgerGroup>();
int count = 0;
while (rdr.Read())
{
count++;
Add(
new _REC_LedgerGroup(
count,
Convert.ToInt32(rdr["id"]),
rdr["name"].ToString(),
rdr["alias"].ToString()
));
}
rdr.Close();
DB.Close();
}
else { DB.Close(); }
}
catch { DB.Close(); }
}
private void GroupListVM_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
}
}
}
这是XAML:
<ListView
x:Name="GroupList"
Grid.ColumnSpan="2" Grid.Row="5"
Background="#FFEEEEEE" Margin="0,2" FontSize="12"
ItemsSource="{Binding Source={StaticResource GroupListCollection}}">
<ListView.View>
<GridView>
<GridViewColumn Header="Sno" Width="100" DisplayMemberBinding="{Binding sno}" />
<GridViewColumn Header="ID" Width="100" DisplayMemberBinding="{Binding id}" />
<GridViewColumn Header="Name" Width="200" DisplayMemberBinding="{Binding name}" />
<GridViewColumn Header="Alias" Width="100" DisplayMemberBinding="{Binding alias}" />
</GridView>
</ListView.View>
</ListView>
我不知道我哪里出错了。