2010-02-17 89 views
0

我的代码隐藏文件接收一个实例对象会话有一个属性AvailableCountries返回一个列表。每个Country对象都有一个Name属性,它是一个String。如何将ListBox的项目绑定到实例对象列表?

我也想用这里简化的数据模板显示这些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

您需要将ListBoxItemsSource属性设置为绑定:

<ListBox Name="ctrlCountries" 
      ItemTemplate="{DynamicResource countriesLayout}" 
      IsSynchronizedWithCurrentItem="True" 
      ItemsSource="{Binding}" 
/> 
+1

谢谢! (对于任何其他读者:将{Binding}放在引号中) – 2010-02-17 16:07:17

+0

对不起,请尽快解答。感谢您添加关于错误的评论 – mattythomas2000 2010-02-17 17:05:08

相关问题