我正在使用LiteDB。客户定义如下:
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string[] Phones { get; set; }
public string[] Cars { get; set; }
}
当我想在数据网格视图中显示我的数据时,只显示前两列,而数据网格视图不显示最后两列是数组。
这是GetAll
private List<Customer> GetAll()
{
var issuesToReturn = new List<Customer>();
try
{
using (var db = new LiteDatabase(Constants.ConnectionString))
{
var issues = db.GetCollection<Customer>("customers");
foreach (Customer issueItem in issues.FindAll())
{
issuesToReturn.Add(issueItem);
}
}
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
return issuesToReturn;
}
答案 0 :(得分:1)
您可以尝试使用另一个字段来格式化网格中的数据(但不存储在数据文件中)。像这样:
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string[] Phones { get; set; }
public string[] Cars { get; set; }
[BsonIgnore]
public string DisplayPhones => string.Join(", ", Phones);
[BsonIgnore]
public string DisplayCars => string.Join(", ", Cars);
}
然后,使用此&#34;显示&#34;更改网格以映射列。属性。
答案 1 :(得分:0)
使用“Include”方法加载相关数据:
var issues = db.GetCollection(“customers”)。包括(x =&gt; x.Phones).Include(x =&gt; x.Cars);
另请注意,WPF中的GridView无法单独在一个单元格中显示数组。您需要手动添加列:https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview(v=vs.110).aspx