2011-02-01 89 views
1

我有下面的代码应该显示关于列表框中的联系人列表的一些信息,但似乎没有任何显示的绑定有问题。我错过了什么?将不胜感激任何帮助。谢谢!将ObervableCollection绑定到列表框

XAML

</Window> 
<Window.Resources> 
<DataTemplate x:Key="ContactsTemplate"> 
     <WrapPanel> 
      <TextBlock TextWrapping="Wrap" 
         Text="{Binding ContactListName, Mode=Default}"/> 
     </WrapPanel> 
    </DataTemplate> 

</Window.Resources> 

<Grid x:Name="LayoutRoot" 
     Background="#FFCBD5E6"> 
    <Grid.DataContext> 
     <local:MyViewModel/> 
    </Grid.DataContext> 

    <ListBox x:Name="contactsList" 
      SelectionMode="Extended" 
      Margin="7,8,0,35" 
      ItemsSource="{Binding ContactLists}" 
      ItemTemplate="{DynamicResource ContactsTemplate}" 
      HorizontalAlignment="Left" 
      Width="178" 
      SelectionChanged="contactsList_SelectionChanged"/> 
</Grid> 
</Window> 

视图模型

​​

回答

2

变化ContactLists是一个属性的结合才能正常工作:

public class MyViewModel 
{ 
    public ObservableCollection<ContactListModel> ContactLists{get;set;} 

    public MyViewModel() 
    { 
     var data = new ContactListDataAccess(); 
     ContactLists = data.GetContacts(); 

    } 
} 

here更多信息。

+0

除此之外,如果您将其设置为通过DependencyProperty进行访问,那将会很不错。 – 2011-02-01 21:47:31