首次打开 window 时 Wpf 数据网格不显示项目
Wpf data grid not showing items when window is opened for the first time
在我的 wpf 应用程序中,我有一个数据网格,其项目源绑定到一个可观察的集合。集合中的项目使用异步任务加载。如果 window 是第一次打开,它不会在网格中显示任何数据,而是显示空白行,如果关闭并重新打开 window,它会在网格中显示数据。任何人都知道为什么会这样。这是我的代码。
<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 多分钟了。任何人都知道如何解决这个问题。
添加了对可观察集合的 setter 的 onPropertyChanged
调用,一切都按预期工作
public ObservableCollection<Department> Departments {
get { return _departments; }
set {
_departments = value;
onPropertyChanged(nameof(Departments));
}
}
在我的 wpf 应用程序中,我有一个数据网格,其项目源绑定到一个可观察的集合。集合中的项目使用异步任务加载。如果 window 是第一次打开,它不会在网格中显示任何数据,而是显示空白行,如果关闭并重新打开 window,它会在网格中显示数据。任何人都知道为什么会这样。这是我的代码。
<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 多分钟了。任何人都知道如何解决这个问题。
添加了对可观察集合的 setter 的 onPropertyChanged
调用,一切都按预期工作
public ObservableCollection<Department> Departments {
get { return _departments; }
set {
_departments = value;
onPropertyChanged(nameof(Departments));
}
}