Как забайндить ListBox'у коллекцию строк? Со своим типом вопросов нет. А вот что делать с обычной строкой? Сделал как тут enSO: MVVM-How to Binding ObservableCollection of Strings into ListBox WPF но не помогло
ObservableCollection<string> searchResultList
<ListBox ItemsSource="{Binding searchModel.searchResultList}">
<TextBlock Text="{Binding }"/>
</ListBox>
В оригинальном ответе на enSO речь идёт о замене части шаблона элемента списка, а не добавлении TextBlock
в коллекцию ListBox
, как сделали вы. В вашем случае будет достаточно просто:
<ListBox ItemsSource="{Binding searchModel.searchResultList}" />
Со строчками ListBox
умеет работать без переопределения шаблона элемента.
Эквивалентной записью было бы:
<ListBox ItemsSource="{Binding searchModel.searchResultList}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Как верно замечают в комментарии, searchResultList
должен быть публичным свойством, а не приватным полем.
Не работает потому что:
ObservableCollection<string> searchResultList
во-первых поле, а не свойство(Binding работает только со свойствами). Во-вторых оно приватное, должно быть public
public ObservableCollection<string> searchResultList { get; set; }
xaml:
<ListBox ItemsSource="{Binding searchResultList}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding }"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравстуйте, у меня есть дата в формате String, как мне определить, что прошло уже больше 4х секунд?