Как я покажу первый элемент наблюдаемой коллекции в списке?
У меня есть это заявление:
public ObservableCollection<SomeType> Collection { get; set; }
я попробовал что-то вроде:
myListBox.ItemsSource = Collection[0];
показать первый элемент коллекции в элементе управления Listbox, но он выдает ошибку.
как я это сделаю? какое изменение я должен сделать на правой стороне?
1 ответ
Вам необходимо привязать ItemSource к вашей коллекции, а затем установить выбранный индекс на тот, который вы хотите (0 в вашем случае)
Вот самый маленький пример. XAML:
<Window x:Class="WPFSOTETS.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
<ComboBox ItemsSource="{Binding Collection}" SelectedIndex="2"></ComboBox>
</Grid>
</Window>
Код позади:
using System.Collections.ObjectModel;
using System.Windows;
namespace WPFSOTETS
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public ObservableCollection<string> Collection
{
get
{
return new ObservableCollection<string> {"one","two","three"};
}
}
}
}
Я установил индекс на 2, просто для удовольствия, но вы можете поиграть с ним.
Что касается комментариев, если вы хотите установить это в коде позади, вам нужно будет назвать свой элемент управления, а затем вы можете использовать его из своего кода и выполнить связывание и настройку там. Вы можете взглянуть на этот ответ, например.