如何将ListBox的项绑定到实例对象列表?

时间:2010-02-17 15:47:21

标签: wpf binding listbox datatemplate

我的代码隐藏文件接收一个实例对象Session,它具有返回List的属性AvailableCountries。每个Country对象都有一个Name属性,它是一个String。

我还想使用我在这里简化的数据模板显示这些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 个答案:

答案 0 :(得分:1)

您需要将ItemsSource的{​​{1}}属性设置为绑定:

ListBox