2016-07-11 4 views
0

Le titre de ma question le dit déjà. Comment puis-je vérifier si mon XmlDataProvider a rempli mon DataGrid avec du code derrière. Il fonctionne déjà, mais je veux vérifier quand il est fini, je peux le style des cellules de mon DataGrid (Premier plan, arrière-plan, TextWeight) avant que l'utilisateur est en mesure de faire/voir quoi que ce soit:Comment savoir dans codebehind quand XmlDataProvider a rempli le contrôle cible avec des données

public ExcelWindow(string filePath) 
{ 
    InitializeComponent(); 
    _filePath = filePath; 

    Dispatcher.beginInvoke((Action)(() => 
    { 
     LoadScreenSettings(); 
    })); 

    LoadXml(); 

    CellLayoutHandler = new CellLayoutHandler(DataGridXml, _FilePath); 
} 

private void LoadXml() 
{ 
    XmlDataProvider dataProvider = xmlDataProvider; 
    XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.Load(_FilePath); 
    dataProvider.Document = xmlDoc; 
    dataProvider.XPath = "Data/Row"; 
} 
+0

1) Si vous voulez voir exactement quand il est terminé, vous pouvez également utiliser l'arrière-plan. Fondateur a un événement comme "RunWorkerCompleted" – Ugur

+0

2) Ou simplement créer un style de grille de données personnalisé concernant vos données en XML. – Ugur

+0

Ok, je vais regarder dans merci! Mais il doit y avoir un moyen plus facile de faire cela correctement? Je ne peux pas imaginer que ce soit si difficile à réaliser d'une manière plus simple. – NickGames

Répondre

0
  1. Utiliser l'événement LoadingRow: Dgrd.LoadingRow += DgrdParent_LoadingRow;, la beauté de cet événement n'est visible que si les lignes tirent cet événement, si vous faites défiler vers le bas ou augmentez la taille du Window, les lignes restantes pertinentes déclencheront cet événement.

  2. Utilisez la propriété HasItems. Cette propriété devient True uniquement lorsque DataGrid est terminée avec ses ItemsSource.