Wie Implementieren einer ListBox Checkboxen in WPF?

Obwohl etwas erfahren mit dem schreiben von Winforms-Anwendungen, die... "Unbestimmtheit" des WPF-noch entzieht sich mir in Bezug auf best practices und design-patterns.

Trotz Auffüllen meiner Liste zur Laufzeit, meine listbox leer angezeigt.

Habe ich befolgte die einfachen Anweisungen, die von diesen Artikel hilfreich ohne Erfolg. Ich vermute, dass was mir fehlt, ist irgendeine Art von DataBind() Methode, wo ich sage das Listenfeld, das ich fertig bin ändern der zugrunde liegenden Liste.

In meiner MainWindow.xaml habe ich:

    <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>

In meinem code-behind habe ich:

    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 );
        }
    }

Die durch die Verfolgung durch, ich weiß, wird aufgefüllt mit vier Elementen.

BEARBEITEN

Habe ich geändert TopicList zu einem ObservableCollection. Es funktioniert immer noch nicht.

    public ObservableCollection<CheckedListItem> TopicList;

EDIT #2

Habe ich zwei änderungen vorgenommen, die helfen:

In der .der xaml-Datei:

ListBox ItemsSource="{Binding}"

In den source-code, nachdem ich die Liste füllen:

listTopics.DataContext = TopicList;

Ich bin immer in der Liste, aber es ist nicht automatisch aktualisieren das Kontrollkästchen Staaten, wenn ich aktualisieren diese. Ich vermute, ein wenig weiter Lesen auf mein Teil wird dieses Problem beheben.

Kommentar zu dem Problem
Downvoter: wie genau hat diese Frage nicht zeigen Forschungsarbeiten, unklar ist oder die nicht sinnvoll? Kommentarautor: Bob Kaufman

InformationsquelleAutor der Frage Bob Kaufman | 2010-12-24

Schreibe einen Kommentar