Как реализовать ListBox флажков в WPF?

Несмотря на некоторый опыт написания приложений Winforms, ... "расплывчатость" WPF все еще ускользает от меня с точки зрения лучших практик и шаблонов проектирования.

Несмотря на заполнение моего списка во время выполнения мой список выглядит пустым.

Я выполнил простые инструкции из этой полезной статьи , но безрезультатно. Я подозреваю, что мне не хватает какого-то метода DataBind () , в котором я сообщаю списку, что я закончил изменение основного списка.

В моем MainWindow.xaml у меня есть:

    
        
            
                
            
        
    

В моем коде программной части у меня есть:

    private void InitializeTopicList( MyDataContext context )
    {
        List 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 );
        }
    }

Который, отслеживая, я знаю, заполняется четырьмя элементами.

ИЗМЕНИТЬ

Я изменил TopicList на ObservableCollection . Он по-прежнему не работает.

    public ObservableCollection TopicList;

РЕДАКТИРОВАТЬ №2

Я внес два исправления, которые помогают:

В файле .xaml:

ListBox ItemsSource="{Binding}"

В исходном коде после заполнения списка:

listTopics.DataContext = TopicList;

I Я получаю список, но он не обновляет автоматически состояния флажков, когда я их обновляю. Я подозреваю, что мое небольшое дальнейшее чтение поможет решить эту проблему.

20
задан Bob Kaufman 24 December 2010 в 17:02
поделиться