如何基于下拉列表值选择创建动态网格

本文关键字:创建 动态 网格 选择 何基于 下拉列表 | 更新日期: 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);
}
  1. 若要添加新行,只需调用要将 DataGrid ItemsSource 绑定到的集合的源的 Add() 方法。还应查看数据网格的 CanUserAddRows 属性。

  2. 编辑数据网格
  3. 使简单网格可编辑,并在焦点更改时保存数据。或者,您可以在 DataGrid 中创建 DataGridTemplateColumn,并在其中添加一个自定义编辑按钮,该按钮可以启用行的编辑或打开一个新的模式窗口,您可以在其中编辑字段并保存它。

希望这有帮助。


如果答案有帮助,请

不要忘记投票,如果这回答了您的问题,请标记为答案。