第一次打开窗口时,Wpf数据网格不显示项目

本文关键字:网格 数据网 显示 项目 数据 Wpf 开窗口 第一次 | 更新日期: 2023-09-27 18:18:12

在我的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多分钟了。有人知道怎么解决这个问题吗

第一次打开窗口时,Wpf数据网格不显示项目

为可观察集合的setter添加了一个onPropertyChanged调用,一切都如预期的那样工作

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