2011-02-02 3 views
0

레코드 그룹화를 위해 collectionviewsource를 사용하여 바인딩하는 wpftoolkit datagrid 컨트롤을 사용하고 있습니다. 사용자가 양식을 지우려고 할 때마다 DataGrid도 지울 필요가 있습니다. DataGrid itemsource를 null로 설정하려고했지만 명확한 기능을 위해 정상적으로 작동합니다. 사용자가 DataGrid에 레코드를 추가하려고하면로드되지 않습니다.WpfDatagrid Collectionviewsource clear

아무도 나에게 DataGrid를 지우는 해결책을 제공해 줄 수 있습니까?

감사의 말 전진.

답변

0

이 상황에서는 ObservableCollection을 사용합니다. 예 :

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     this.items = new ObservableCollection<Item>(
      Enumerable.Range(0, 10).Select(i => new Item {Id = i, Title = "str " + i})); 
     this.viewSource = new CollectionViewSource() { Source = this.items }; 

     dataGrid1.ItemsSource = this.viewSource.View; 
    } 

    private ObservableCollection<Item> items; 
    private CollectionViewSource viewSource; 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     items.Clear(); 
     //or 
     //((ObservableCollection<Item>)viewSource.Source).Clear(); 
    } 

    public class Item 
    { 
     public int Id { get; set; } 
     public string Title { get; set; } 
    } 
} 

XAML :

<Button HorizontalAlignment="Center" Content="Clear" Click="Button_Click"/> 
<DataGrid AutoGenerateColumns="True" Name="dataGrid1" />