Как записать данные из разных ячеек в одну DataGrid
Пытался написать ресурс, который бы выводил полное имя клиента в одно поле datagrid, но не получается пишет "не удаётся преобразовать из "string" в "dbcontext.Client." Разметка
<DataGridTextColumn Header="Клиент" Binding="{Binding Source={StaticResource list},
XPath=Client, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
код ресурса
namespace StraxCompany.Model
{
class ClientList : ObservableCollection<Clinet>
{
public ClientList()
{
var names = Documents.dbcontext.Clinet
.Select(c => new
{
fname = c.First_Name,
lname = c.Last_Name,
mname = c.Middle_Name
});
foreach (Clinet name in names)
{
//qwe.Add(name.lname+" "+name.fname+" "+name.mname);
this.Add(name.lname + name.fname + name.mname);
//this.Add(name);
}
}
}
}
Класс клиент
namespace StraxCompany
{
using System;
using System.Collections.Generic;
public partial class Clinet
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Clinet()
{
this.Treatly = new HashSet<Treatly>();
}
public int ID_Client { get; set; }
public string Last_Name { get; set; }
public string First_Name { get; set; }
public string Middle_Name { get; set; }
public string Phone { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Treatly> Treatly { get; set; }
}}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Добавьте свойство, которое будет Собирать ФИО в одну строку
public partial class Clinet
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Clinet()
{
this.Treatly = new HashSet<Treatly>();
}
public int ID_Client { get; set; }
public string Last_Name { get; set; }
public string First_Name { get; set; }
public string Middle_Name { get; set; }
public string Phone { get; set; }
public string Full_Name => Last_Name + " " + First_Name + " " + Middle_Name;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Treatly> Treatly { get; set; }
}
А в цикле вот так
foreach (var name in names)
{
Clinet client = new Clinet()
{
First_Name = name.fname,
Last_Name = name.lname,
Middle_Name = name.mname
}
this.Add(client);
}
Ну и колонка
<DataGridTextColumn Header="Клиент" Binding="{Binding Full_Name}"/>
И советую все-таки переименовать класс Clinet в Client