2010-09-10 9 views
0

L'utilisateur a choisi un dossier contenant des fichiers. Je fais un listview affichant les fichiers dans le dossier choisi. Je veux afficher ce que chaque fichier contient, mais je veux l'afficher lorsque l'utilisateur vérifie un fichier de listviewitem. J'utilise le code suivant:comment vérifier si l'élément listview est coché

if (listView1.Items[0].Checked == true) 
{ 
    //.... 
} 

Pourquoi cela ne fonctionne-t-il pas? Que dois-je vouloir utiliser des données par exemple:

button1.Click(...) à button2.Click(...)?

+1

Quel "ListView"? Formulaires Web Windows Forms? WPF? SilverLight? –

+1

considère également 'if (listView1.Items [0] .Checked)' –

+1

luc, lors de la publication d'une question, il aide à inclure des choses comme des messages d'erreur ou au moins plus de détails sur ce qui "ne fonctionne pas" – NotMe

Répondre

1

Qui ev ent vous capturez? Rappelez-vous si c'est le ItemCheck, que vous ne pouvez pas utiliser le listView1.Item[0].Checked si cet élément a été coché/décoché. Vous devez prendre le paramètre ItemCheckEventArgs et, en utilisant le e.Index, exclure cet élément lors de la vérification de l'ensemble des éléments listview. Utilisez e.NewValue pour évaluer séparément l'élément ayant déclenché l'événement ItemCheck.

3

Je ne sais pas exactement ce que vous cherchez, mais il y a des moyens numériques pour déterminer quels éléments dans un ListView sont cochés:

// This loops through only the checked items in the ListView. 
foreach (ListViewItem checkedItem in listView1.CheckedItems) { 
    // All these ListViewItems are checked, do something... 
} 

// This loops through all the items in the ListView and tests if each is checked. 
foreach (ListViewItem item in listView1.Items) { 
    if (item.Checked) { 
     // This ListViewItem is Checked, do something... 
    } 
} 

Vous pouvez utiliser la ListViewItem classe pour examiner les détails de chaque élément sélectionné .

0

Je voudrais créer un joli design MVVM. Le ViewModel aurait un ObservableCollection FileList, où le fichier contiendrait toutes les informations que vous voulez. Cette classe aurait aussi une propriété IsFileSelectedUI afin que vous puissiez avoir votre code. Ensuite, dans les choses XAML sont faciles:

<ScrollViewer Grid.Column="0" Grid.Row="1" > 
<ItemsControl ItemsSource="{Binding FileList}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Border BorderBrush="Gray" BorderThickness="1" Margin="2" Padding="2"> 
       <StackPanel Orientation="Horizontal"> 
        <CheckBox IsChecked="{Binding IsFileSelectedUI , Mode=TwoWay}"/> 
        <TextBlock Text="{Binding FileName}"/> 
       </StackPanel> 
      </Border> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

Ensuite, les choses sont tout aussi facile que:

FileList.Where (file => file.IsFileSelectedUI) etc

Si j'ai compris ce que vous avez dit :)

+0

Ce n'est pas une mauvaise conception de WPF, mais elle ne répond pas à la question de l'OP, qui est la façon dont vous déterminez si un élément dans un .NET Framework ListView est coché ... –

Questions connexes