2011-02-01 10 views
1

次のコードでは、ListBoxのContactListsに関する情報を表示する必要がありますが、何も表示されないためバインディングに問題があるようです。私は何が欠けていますか?助けていただければ幸いです。ありがとう!ObervableCollectionをListBoxにバインドする

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

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

    } 
} 

を参照してください:

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> 

のViewModel

​​

答えて

2

変更ContactListsは、バインディングが正しく機能するために財産であることを詳細は10ページを参照してください。

+0

さらに、DependencyPropertyを介してアクセスするように設定するとよいでしょう。 –

+0

ContactLists * instance *(その内容のみ)を変更したくない可能性があるので、DPとして設定する必要はありません –

+0

本当にありがとう – Ben

関連する問題