WPF cache la ligne dans DataGrid en fonction des conditions
J'ai besoin de masquer des lignes dans la grille de données, basé sur les paramètres et les valeurs dans la grille de données. J'ai pensé à faire quelque chose comme cela;
foreach (System.Data.DataRowView dr in myDataGrid.ItemsSource)
{
//Logic to determine if Row should be hidden
if (hideRow == "Yes")
{
//Hide row code
}
}
Je n'arrive pas à comprendre comment réels de masquer la ligne. Veuillez noter que je ne veux pas supprimer la ligne qui forme la grille de données ou de l'élément source.
source d'informationauteur Xaphann
Vous devez vous connecter pour publier un commentaire.
Si hideRow n'est pas un champ de la table (c'est à dire pas une colonne dans la DataGridRow):
Et de réaliser Convertisseur avec votre logique. Le type de la variable liée, AnyProp ci-dessus, sera yourPropertyType ci-dessous. AnyProp peut être l'une des colonnes de la ligne.
"valeur" sera AnyProp, et il peut être utilisé dans la logique qui détermine si ou de ne pas afficher la ligne, ou que la décision peut être basée sur quelque chose de complètement différent, comme "hideRow' dans l'exemple.
Vous pouvez le faire dans la grille de données.ItemContainerStyle au lieu de le faire dans le code-behind...
Utiliser un objet collectionviewsource pour relier la grille de données avec les données de votre entreprise. L'objet collectionviewsource les feux d'un filtre d'événement pour chaque ligne. Dans ce cas, votre code peut décider si la ligne doit être affiché.
Ajouter à votre XAML:
Ajoutez les lignes suivantes à votre fichier code-behind:
Créer le filtre de gestionnaire d'événements. Vous pouvez obtenir la ligne de données à partir de l'e.De l'élément. Par la mise en électronique.Acceptée, vous pouvez contrôler si la ligne doit être affiché.