2015-10-17 2 views
0

В моем приложении wpf у меня есть сетка данных, источник элементов которой привязан к наблюдаемой коллекции. элементы в коллекции загружаются с использованием задачи async. Если окно открыто в первый раз, оно не отображает никаких данных в сетке, а пустые строки, и если закрытие и повторное открытие окна показывают данные в сетке. Кто-нибудь знает, почему это происходит. вот мой код.В сетке данных Wpf не отображаются элементы, когда окно открыто в первый раз

<DataGrid 
     x:Name="dtg" 
     ItemsSource="{Binding Departments}" 
     AutoGenerateColumns="false" 
     CanUserDeleteRows="False" 
     CanUserReorderColumns="False" 
     RowHeight="35" 
     CanUserResizeColumns="False" 
     CanUserResizeRows="False" 
     CanUserSortColumns="True" 
     Grid.Column="0" 
     Grid.Row="2" 
     Grid.ColumnSpan="5"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding DepartmentId}" Header="Slno" /> 
      <DataGridTextColumn Binding="{Binding DepartmentName}" Header="Department" /> 
     </DataGrid.Columns> 
    </DataGrid> 

это код для загрузки элементов в наблюдаемой коллекции, и это просто вызов к другому методу

private async void loadData() { 
     Departments = await _dataManager.getDepartmentsAsync(); 
    } 

Я пытался исправить это в течение более чем 30 минут. Кто-нибудь знает, как это исправить.

ответ

0

Добавлен onPropertyChanged вызов сеттера наблюдаемой коллекции и все работает, как ожидалось

public ObservableCollection<Department> Departments { 
     get { return _departments; } 
     set { 
      _departments = value; 
      onPropertyChanged(nameof(Departments)); 
     } 
    }