2011-07-20 17 views
2

これは既に要求されていないが、私は答えを見つけることができないことを願っています。 xamlでDataContextとしてViewModelが設定されています。このViewModelには、リスト<ディーラー>プロパティがあります。ディーラーは、データグリッドに表示されるべきいくつかのプロパティを持っています(カラムではなく、すべてではありません)。 ViewModelにでて、PropertyChangedがnullこの場合WPF DataGridの列へのバインド

<Grid x:Name="myGrid" DataContext="{Binding Source={StaticResource createGameVM}}"> 
... 
    <DataGrid Name="dealerList" AutoGenerateColumns="False" ItemsSource="DealerList"> 
     <DataGrid.Columns> 
     <DataGridTextColumn Header="ID" Width="30" Binding="{DealerId}" />       
     <DataGridTextColumn Header="Name" Width="*" Binding="{DealerName}" />      
     </DataGrid.Columns> 
    </DataGrid> 
... 
</Grid> 

をするので、何もDealerList変更を更新されていない:私はこのようにそれを実装しようとしました。 (ただし、DataContextを設定する前にDealerListにあるアイテムは正しく表示されます)。 これを解決する方法がわかりません。

答えて

7

代わりにViewModelのObservableCollection<Dealer>にバインドしてください。そうすれば、コレクションが変更されたときに自動的に更新されます。

1

これを試してみてください:

<Grid x:Name="myGrid" DataContext="{Binding Source={StaticResource createGameVM}}"> 
... 
    <DataGrid Name="dealerList" AutoGenerateColumns="False" ItemsSource="{Binding DealerList}"> 
     <DataGrid.Columns> 
     <DataGridTextColumn Header="ID" Width="30" Binding="{DealerId}" />       
     <DataGridTextColumn Header="Name" Width="*" Binding="{DealerName}" />      
     </DataGrid.Columns> 
    </DataGrid> 
... 
</Grid> 
0

のObservableCollectionを使用するだけでなく、あなたはまた、独自の派生リストクラスを作成し、INotifyCollectionChangedを実装することができます。

関連する問題