2010-11-10 5 views
2

Voici ce que je veux: Lorsque l'utilisateur clique sur un bouton, toutes les lignes qui répondent à un critère devrait avoir un effet de flou ajoutéAjouter un effet à certaines des lignes dans un DataGrid

Problème: La seule J'ai trouvé que c'est dans l'événement LoadingRow. Mais dans mon cas, la ligne est déjà chargée quand je veux appliquer l'effet de flou.

Question: Comment parcourir des lignes pour que je puisse appliquer l'effet Flou. Ou, encore mieux, comment puis-je lier un effet à une rangée?

Ceci est mon code qui ne fonctionne que lors de l'application d'effet au démarrage:

private void dg_LoadingRow(object sender, DataGridRowEventArgs e) 
    { 
     if (true) // Logic for figuring out if a row should be blur'ed 
      e.Row.Effect = new BlurEffect { Radius = 8 }; 
    } 

Merci pour toute aide

Larsi

Répondre

1

J'ai trouvé une solution à ceci:

Bind à la propriété Effect sur le DataGridCellPresenter comme ceci:

<sdk:DataGridCellsPresenter x:Name="CellsPresenter" Grid.Column="1" sdk:DataGridFrozenGrid.IsFrozen="True" Effect="{Binding ., Converter={StaticResource BlurConverter}}"/> 

Et le convertisseur simplement:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
{ 
    // Some logic... 
    return new BlurEffect { Radius = 8 }; 
} 

Lars Erik

Questions connexes