2017-02-12 7 views
0

У меня есть datagrid; Printreport, населенный через observable collection; PopulatePatternData Он работает нормально, и все строки отображаются при запуске программы. Когда программа повторно, я хотел бы получить DataGrid обновленных с новыми рядами данных, но вместо того, чтобы новые данные добавляются с предыдущими результатами (строками)строки WPF Datagrid не очищаются - C#

XAML:

<DataGrid x:Name="PrintReport" ItemsSource="{Binding PopulatePatternData}" AutoGenerateColumns="False" FontFamily="Tahoma" FontSize="12" CanUserSortColumns="False" 
                HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" AlternatingRowBackground="Gainsboro" AlternationCount="1" 
                SelectionMode="Extended" SelectionUnit="Cell" > 

на кнопке (RunAnalysis), который я использую для запуска программы, имеет значение event handler. Я очищаю observable collection, когда он щелкнут, а затем создается файл данных. Я попытался «clear» строк данных, как показано ниже, но безрезультатно.

private void RunAnalysis(object sender, RoutedEventArgs e) 
     { 
      WFPlanningCompliancePluginModel model = DataContext as WFPlanningCompliancePluginModel; 
      model.PopulatePatternData.Clear(); 
      PrintReport.Items.Clear(); // This does not work   
      model.Run(); 
     } 

The collection очищается, но не в datagrid! что я донг ошибаюсь? программа терпит неудачу, когда он запускается в первый раз, если я использую

PrintReport.Items.Clear(); as it does not find any items. 
+1

Если переплетные работы правильно, вам не нужно PrintReport.Items. Очистить(); - Можете ли вы показать код модели? – Fruchtzwerg

+1

Если вы очищаете таблицу базы данных, вам необходимо снова обновить datagrid. – DumpsterDiver

ответ

1

пересвяжите DataGrid после очистки детали:

private void RunAnalysis(object sender, RoutedEventArgs e) 
{ 
    WFPlanningCompliancePluginModel model = DataContext as WFPlanningCompliancePluginModel; 
    model.PopulatePatternData.Clear(); 

    // PrintReport.Items.Clear(); // This you can skip if the binding works. 
    PrintReport.DataBind(); // This should be enough if the binding works correctly! 
    model.Run(); 
} 
+0

thnks. это сработало. – user7157732

 Смежные вопросы

  • Нет связанных вопросов^_^