Nous développons des applications utilisant WPF, la conception matérielle et MS-Access 2007 comme Back End. Maintenant nous sommes confrontés à un problème d'application qui ralentit en ouvrant une vue unique, cette vue particulière a 16 combos qui se remplissent. Il prend 7 secondes pour le processus, le code suivant utilisé pour lier zone de liste déroulante item Sourcedélai lors de l'ouverture de vue dans l'application wpf
List<ComboBind> values = new List<ComboBind>();
try
{
using (var oleDbCommand = new OleDbCommand())
{
oleDbCommand.CommandText = query ;
oleDbCommand.Connection = Connection.con;
var sql = query;
var oleDbDataReader = oleDbCommand.ExecuteReader();
while (oleDbDataReader.Read())
{
ComboBind b = new ComboBind();
b.id = oleDbDataReader[0].ToString().ToInt();
b.name = oleDbDataReader[1].ToString();
values.Add(b);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Étape 1. Brûlez 'Access' il est une source du mal pur! Étape 2. Post xaml de votre 'ComboBox'. J'espère que vous omettez l'implémentation 'INotifyPropertyChanged'. – XAMlMAX
im utilisant FilteredComboBox deriverd de la classe combobox –
Il y a 2 possibilités ici: ** 1 ** votre requête à la base de données prend beaucoup de temps ou ** 2 ** vous avez de nombreux enregistrements à afficher sans que la virtualisation ne soit activée, ce qui entraîne la création d'un grand nombre d'éléments 'U'I. C'est maintenant à vous de découvrir quel est votre cas. Pourriez-vous également mettre ce code dans votre message. – XAMlMAX