【问题标题】:Retrieving data from WPF Datagrid into a List does not have the same number of columns将 WPF Datagrid 中的数据检索到 List 中的列数不同
【发布时间】:2023-04-05 11:50:01
【问题描述】:

我有一个问题,虽然我在这里搜索了很多但没有答案。 我有2节课

class adminApp
{
   public int Id { get; set; }
   public string Email { get; set; }
   public string Password { get; set; }
   public string FullName { get; set; }
   public Nullable<System.DateTime> StartFrom { get; set; }
   public string LicenseKey { get; set; }
   public bool Checked { get; set; }
}

class User
{
   public int Id { get; set; }
   public string FullName { get; set; }
   public string Email { get; set; }
   public Nullable<System.DateTime> StartFrom { get; set; }
}

我正在使用 Web API 从 MSSQL 获取并在加载到 Gridview 后推送到 adminApp 类。我编写了一个更新函数,只需将 ID、FullName、Email、StratFrom 发送到 API。我尝试编写一个 Linq 从 Gridview 获取数据,但它仍然为空。请帮我更正我的代码:

List<User> list = dgvList.Items
                         .OfType<User>()
                         .Where(x => x.Checked == true)
                         .ToList();

【问题讨论】:

  • 你说你正在加载adminApps,而不是Users 那你为什么要拉Users?
  • 是的,我想将“PUT”发送到我的 API 以进行更新。我只接受编辑姓名、电子邮件、开始。我不想将所有数据发送到服务器,因为安全或只是想最小化发送的数据

标签: c# wpf linq


【解决方案1】:

您的问题缺乏足够的上下文来确定,但如果您的网格中充满了addminApps,那么您不能直接退出User。试试这个,它会投影到User 的列表中:

List<User> list = dgvList.Items
                 .OfType<adminApp>()
                 .Where(x => x.Checked == true)
                 .Select(a => new User{ 
                     Id = a.Id, 
                     FullName = a.FullName, 
                     Email = a.Email, 
                     StartFrom = a.StartFrom })
                 .ToList();

【讨论】:

    猜你喜欢
    • 2012-02-17
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2016-04-30
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    相关资源
    最近更新 更多