mi consiglia di definire uno stile per DataGridRow
che avrà la sua visibilità legata a se debba essere visualizzato o meno. Basta scorrere le righe non sarà sufficiente, come ho detto nella risposta di @ RV1987.
<DataGrid>
<DataGrid.Resources>
<Style TargetType="DataGridRow">
<Setter Property="Visibility" Value="{Binding ...}" />
</Style>
</DataGrid.Resources>
</DataGrid>
EDIT:
Cosa si associa a dipende da dove si tiene l'informazione di se o non si dovrebbe visualizzare la riga. Ad esempio, se ogni oggetto di dati nella vostra collezione bound ha una proprietà bool ShouldBeDisplayed
, si dovrebbe avere qualcosa di simile:
<DataGrid>
<DataGrid.Resources>
<BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter" />
<Style TargetType="DataGridRow">
<Setter Property="Visibility" Value="{Binding Path=ShouldBeDisplayed, Converter={StaticResource booleanToVisibilityConverter}}" />
</Style>
</DataGrid.Resources>
</DataGrid>
fonte
2012-10-06 19:02:33
Una cosa da notare qui è che quando la virtualizzazione è in (che lo è di default), sarà ottenere 'null' per le righe che non sono state create. Ciò significa che non sarà possibile eseguire iterazioni su tutte le righe in un'unica esecuzione, a meno che non si imposti 'VirtualizingStackPanel.IsVirtualizing =" False "' sul proprio DataGrid, ma ciò potrebbe causare scarse prestazioni della griglia. –