将ObervableCollection绑定到ListBox

时间:2011-02-01 21:29:38

标签: c# wpf mvvm

我有以下代码,应该在ListBox中显示有关ContactLists的一些信息,但似乎没有显示任何绑定问题。我错过了什么?非常感谢任何帮助。谢谢!

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>

视图模型

public class MyViewModel
{
    public ObservableCollection<ContactListModel> ContactLists;

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

    }

}

1 个答案:

答案 0 :(得分:2)

将ContactLists更改为绑定正常工作的属性:

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

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

    }
}

有关详细信息,请参阅here