На ваш второй вопрос
Может ли табличка данных применяться к
список, в котором элементы находятся непосредственно
добавлено и не связано?
ItemTemplate объекта ListBox копируется в ContentTemplate объекта ListBoxItem во время создания пользовательского интерфейса. Однако при прямом добавлении ListBoxItems ItemTemplate игнорируется для элементов, уже имеющих тип контейнера ItemsControl (ListBoxItem
). Так что вместо этого вам придется использовать ContentTemplate
из ListBoxItem
. Вот пример
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Foreground="Green" Text="{Binding}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem Content="Item 1"/>
<ListBoxItem Content="Item 2"/>
<ListBoxItem Content="Item 3"/>
</ListBox>
Если у вас возникли проблемы с элементами, которые появляются повторно при повторном запуске приложения:
Я бы попытался найти все места, где вы добавляете элементы в свой ListBox, с помощью кода (поиск результатов.Items.Add). Добавьте точку останова в каждое из этих мест, чтобы увидеть их в отладчике при добавлении. Сам ListBox не будет иметь никакой памяти о том, как он выглядел при закрытии, если вы не реализуете это.
Если это не работает, попробуйте изменить имя вашего ListBox на ResultsTest или что-то в этом роде, скомпилируйте и исправьте все ошибки, которые вы получили, закомментировав весь код, ссылающийся на ListBox, и снова запустите программу. Это должно оставить вас без элементов в ListBox. После этого начинайте раскомментировать свой код, шаг за шагом, пока не найдете место ошибки.