Comment mettre en place une zone de liste de Cases à cocher dans WPF?

Bien que peu d'expérience avec l'écriture des applications Winforms, la... "flou" de WPF échappe encore m'en termes de bonnes pratiques et de modèles de conception.

Malgré le remplissage de ma liste au moment de l'exécution, de ma zone de liste apparaît vide.

J'ai suivi les instructions de cet article utile en vain. Je soupçonne que je suis absent quelque sorte de DataBind() méthode où je raconte la zone de liste que je me suis fait la modification de la liste sous-jacente.

Dans ma MainWindow.xaml, j'ai:

    <ListBox ItemsSource="{Binding TopicList}" Height="177" HorizontalAlignment="Left" Margin="15,173,0,0" Name="listTopics" VerticalAlignment="Top" Width="236" Background="#0B000000">
        <ListBox.ItemTemplate>
            <HierarchicalDataTemplate>
                <CheckBox Content="{Binding Name}" IsChecked="{Binding IsChecked}"/>
            </HierarchicalDataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Dans mon code-behind, j'ai:

    private void InitializeTopicList( MyDataContext context )
    {
        List<Topic> topicList = ( from topic in context.Topics select topic ).ToList();

        foreach ( Topic topic in topicList )
        {
            CheckedListItem item = new CheckedListItem();
            item.Name = topic.DisplayName;
            item.ID = topic.ID;
            TopicList.Add( item );
        }
    }

Qui, en retraçant à travers, je sais, c'est être rempli avec quatre points.

MODIFIER

J'ai changé TopicList à un ObservableCollection. Cela ne fonctionne toujours pas.

    public ObservableCollection<CheckedListItem> TopicList;

EDIT #2

J'en ai fait deux changements qui peuvent aider:

Dans le .fichier xaml:

ListBox ItemsSource="{Binding}"

Dans le code source après que j'ai à remplir la liste:

listTopics.DataContext = TopicList;

J'obtiens une liste, mais il n'est pas automatiquement la mise à jour de la case états lorsque j'actualise ces. Je soupçonne un peu plus loin la lecture de ma part résoudre cela.

  • Downvoter: exactement comment cette question montrent pas d'effort de recherche, n'est pas clair ou pas utile?
InformationsquelleAutor Bob Kaufman | 2010-12-24