c# - 从 ObservableCollection 自动生成 DataTable 的列
问题描述
我是 WPF 和 MVVM 的新手,遇到了这个问题。
地图模型:
public class MapModel
{
public string Name { get; set; }
public int Value { get; set; }
}
我的数据存储在 ObservableCollection ->
private ObservableCollection<MapModel> mapData = new();
public ObservableCollection<MapModel> MapData
{
get => mapData;
set
{
SetProperty(ref mapData, value);
}
}
数据取自 REST API 并在OnNavigatedTo
方法中设置。一切正确。
我有一个DataTable
我想绑定到ObservableCollection
并在视图中显示为DataView
.
private DataTable mapDataTable = new();
private DataView mapDataView;
public DataTable MapDataTable
{
get => mapDataTable;
set
{
SetProperty(ref mapDataTable, value);
MapDataView = mapDataTable.DefaultView;
MapDataView.RowFilter = $"Name LIKE '%{FilterName}%'";
}
}
public DataView MapDataView
{
get => mapDataView;
set => SetProperty(ref mapDataView, value);
}
我想使用DataTable
and的原因DataView
是我想在选中复选框时动态添加列。因此,我AutoGenerateColumns=true
在 View 和ItemsSource={Binding MapDataView}
.
自动生成列时如何将可观察集合绑定到数据表?当我在数据表中添加列或过滤它时,它会在视图中自动更新吗?
这就是我想做的一切。我在问题中添加了 MapModel 中最重要的属性。这ObservableCollection<MapModel>
是一个我们称之为家庭的数据的表示(不是一个很好的例子,但仍然是)。我在 DataGrid 上方有一个多选下拉菜单,其中的数字从 1 到 5 - Family 1、Family 2 等。当我从菜单中选择一个值时,我想添加一个名为 Value 2 的列,它从 REST 中获取数据系列 2 的 API,并且仅将值(不是名称,因为名称相同)添加到 DataTable。
解决方案
推荐阅读
- angular - Uncaught Reference Error in App yet it is working fine in Stackblitz
- mysql - 不同的 2 个不同的列,如何在每一行中打印总组合
- wordpress - Wordpress 在 Gatsby 网站的 GraphQL 查询中返回 HTML 符号代码
- sql - MSSQL 在 Sum 列上跳过分组
- sql - 将查询结果合并为单行
- microsoft-graph-api - Microsoft Outlook 日历图 API 增量不返回已删除的事件?
- sql-server - 如何在 laravel 中格式化 sql server 的日期时间?
- python - 检查输入时出现 Keras 错误
- javascript - Stack Overflow JavaScript 代码编辑器:可直接访问的全局对象“窗口”成员
- python - 从 fileA 的单词中创建一个列表,并在 python 中检查该列表针对 fileB