如何基于下拉列表值选择创建动态网格
本文关键字:创建 动态 网格 选择 何基于 下拉列表 | 更新日期: 2023-09-27 18:35:45
在 wpf 应用程序中,我有具有下拉列表的选项卡。下拉列表包含不同表的列表。所有表都有不同的列。我想实现以下功能主义者,
1)基于下拉列表选择显示一个网格,其中包含所选表的所有列。2)向该表添加新行3) 编辑所选表格的列
我是WPF的新手,如果有人可以建议我应该采取什么好方法,那就太好了?
假设您使用的是 MVVM:1. 将组合框选定项绑定到属性,如下所示:
public int SelectedItem
{
get
{
return _selecteditem;
}
set
{
if (_selectedItem != value)
{
_selectedItem = value;
RaisePropertyChanged("SelectedItem");
UpdateGridData();
}
}
}
当选择更改时,将调用 UpdateGridData 方法。更新绑定到 UpdateGridData 方法中的数据网格 ItemsSource 的集合。
例如:让你的 DataGrid 绑定到一个名为 MyCustomCollection 的集合,该集合声明如下:
public ICollectionView MyCustomCollection
{
get;
set;
}
你的 XAML 将如下所示:
<DataGrid ItemsSource="{Binding MyCustomCollection}" .../>
在您的视图模型中实现 UpdateGridData(),如下所示:
void UpdateGridData()
{
//resultfromDatabase is the collection from which the data based on the selected item is added to
var resultDataFromDatabase = GetDataFromDatabase(this.SelectedItem);
MyCustomCollection = CollectionViewSource.GetDefaultView(resultDataFromDatabase);
}
若要添加新行,只需调用要将 DataGrid ItemsSource 绑定到的集合的源的 Add() 方法。还应查看数据网格的 CanUserAddRows 属性。
编辑数据网格使简单网格可编辑,并在焦点更改时保存数据。或者,您可以在 DataGrid 中创建 DataGridTemplateColumn,并在其中添加一个自定义编辑按钮,该按钮可以启用行的编辑或打开一个新的模式窗口,您可以在其中编辑字段并保存它。
希望这有帮助。
如果答案有帮助,请
不要忘记投票,如果这回答了您的问题,请标记为答案。