J'ai un ListView
avec un CheckBox
comme l'une des colonnes, lié à une propriété booléenne d'un objet personnalisé. J'essaie de comprendre comment parcourir les éléments dans le ListView
et cochez toutes les cases. Ce que j'ai à ce jour est ci-dessous:WPF parcourir des éléments dans une vue de liste
XAML:
<ListView x:Name="MyListView" DockPanel.Dock="Top" Height="275" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding}">
<ListView.View>
<GridView>
<GridViewColumn Header="Enabled">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsChecked}" Click="CheckBox_Click" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
VB.NET:
Private Sub SelectAll_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles SelectAll.Click
Dim currSelected As Integer = MyListView.SelectedIndex
MyListView.SelectAll()
For ixItem As Integer = 0 To MyListView.SelectedItems.Count - 1
coItems(ixItem).IsChecked = True
Next
MyListView.SelectedIndex = currSelected
End Sub
J'ai le pressentiment que c'est en fait assez facile, et je manque juste une ligne quelque part. Merci pour l'aide! Le problème est plus particulièrement que les cases à cocher qui sont visibles lorsque le bouton est enfoncé ne sont pas affichées comme cochées, mais celles qui ne sont pas visibles (parce que l'utilisateur doit faire défiler vers le bas pour voir eux) sont affichés comme cochés.
MISE À JOUR 2: Comme demandé, voici le code PropertyChanged. Je suis encore assez nouveau à WPF, je n'ai pas fait beaucoup avec INotifyPropertyChanged auparavant.
Public Property blnIsChecked() As Boolean
Get
Return _blnIsChecked
End Get
Set(ByVal value As Boolean)
_blnIsChecked = value
End Set
End Property
Public Event PropertyChangedHandler(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
Si vous déclenchez l'événement CheckAll, demandez à votre programme de redessiner l'écran (par exemple, en minimisant le programme et en le réouvrant), les éléments apparaissent-ils comme cochés? – Rachel
Oui, en fait. Il y a des articles qui sont en dessous du pli, et ceux-ci semblent vérifiés. (c.-à-d.: les cases à cocher qui ne sont pas visibles lorsque le bouton est enfoncé sont cochées) – Riddari