Несмотря на некоторый опыт написания приложений 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 Я получаю список, но он не обновляет автоматически состояния флажков, когда я их обновляю. Я подозреваю, что мое небольшое дальнейшее чтение поможет решить эту проблему.