2012-01-26 138 views
0

我有一個綁定到集合的ListBox。當我添加一個項目到集合中時,我看不到ListBox中的更改。綁定到集合的ListBox不會自動刷新。爲什麼?

但是,當我稍微調整窗口大小時,新項目突然出現在列表框中。所以綁定似乎工作,只是刷新丟失。

我在這裏可能會做錯什麼?

XAML:

<ListBox Grid.Row="2" Grid.Column="1" Name="TestModules" ItemsSource="{Binding ModuleList}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding TE}"/> 
       <TextBlock Text="-"/> 
       <TextBlock Text="{Binding AF}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

代碼:

private List<PruefModule> _moduleList = new List<PruefModule>(); 
    public ICollectionView ModuleList { get; private set; } 

    ModuleList = CollectionViewSource.GetDefaultView(_moduleList); 
    _moduleList.Add((PruefModule)ModulesGrid.SelectedItem); 

回答

4

您應該使用ObservableCollection而不是ICollectionView,並在它應該工作正常。

從MSDN:

表示一個動態數據採集,提供通知時 項目將添加,刪除,或當整個列表被刷新。

+0

+1 - 謝謝,它工作正常! – paul

0

像Adrian說的你應該使用ObservableCollection。

儘管如此,您可以在添加項目後調用Refresh。

_moduleList.Add((PruefModule)ModulesGrid.SelectedItem); 
ModuleList.Refresh(); 
相關問題