Как я покажу первый элемент наблюдаемой коллекции в списке?

У меня есть это заявление:

    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, просто для удовольствия, но вы можете поиграть с ним.


Что касается комментариев, если вы хотите установить это в коде позади, вам нужно будет назвать свой элемент управления, а затем вы можете использовать его из своего кода и выполнить связывание и настройку там. Вы можете взглянуть на этот ответ, например.

Другие вопросы по тегам