Как я могу привязать элементы ListBox к списку объектов экземпляра? - PullRequest
0 голосов
/ 17 февраля 2010

Мой код файла получает экземпляр объекта Session, который имеет свойство AvailableCountries, которое возвращает список. Каждый объект Country имеет свойство Name, которое является строкой.

Я также хочу отобразить эти объекты Country, используя шаблон данных, который я здесь упростил.

Мой текущий код после прохождения учебника по связыванию WPF только для того, чтобы обнаружить, что вы не можете привязать объекты экземпляра с помощью XAML, поэтому я изменил его следующим образом, основываясь на другом учебнике, но он все равно ничего не отображает.

У меня есть другой метод, который заполняет второе поле списка вручную, который говорит мне, что список стран действительно передан правильно.

<UserControl.Resources>
    <DataTemplate x:Key="countriesLayout" DataType="Country">
        <StackPanel TextBlock.Foreground="Yellow">
            <StackPanel HorizontalAlignment="Left">
                <TextBlock Text="{Binding Path=Name}"/>
            </StackPanel>
        </StackPanel>
    </DataTemplate>
</UserControl.Resources>

<ListBox    Name="ctrlCountries"
            ItemTemplate="{DynamicResource countriesLayout}"
            IsSynchronizedWithCurrentItem="True"
/>

// In my code behind file I have:
private void onLoad(object sender, RoutedEventArgs e) {
    ctrlCountries.DataContext = Session.AvailableCountries;
}

1 Ответ

1 голос
/ 17 февраля 2010

Вам необходимо установить свойство ItemsSource вашего ListBox для привязки:

<ListBox    Name="ctrlCountries" 
            ItemTemplate="{DynamicResource countriesLayout}" 
            IsSynchronizedWithCurrentItem="True" 
            ItemsSource="{Binding}"
/> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...