C#을 사용하여 WPF 응용 프로그램을 만들고 있습니다. 콤보 상자 안에 List<Customer>
의 항목을로드하려고합니다. 다음을 수행했습니다.WPF - 콤보 상자 항목에 연결된 문자열 표시
고객 콤보 상자의 이름을 표시 할 수있었습니다. 그러나 고객의 이름과 성을 조합하여 표시하고 싶습니다.. 여기 쓰고 있어요
var customersList = (from c in context.Customers
where c.IsDeleted == false
select new
{
Name = c.FirstName + " " + c.LastName,
c.CustomerId
}).ToList();
cmbCustomer.ItemsSource = customersList;
cmbCustomer.DisplayMemberPath = "Name";
cmbCustomer.SelectedValuePath = "CustomerId";
:
[Table("Customer")]
public class Customer
{
[Key]
public int CustomerId { get; set; }
[Column("FirstName", TypeName = "ntext")]
[MaxLength(100)]
public string FirstName { get; set; }
[Column("LastName", TypeName = "ntext")]
[MaxLength(100)]
public string LastName { get; set; }
[Column("Email", TypeName = "ntext")]
[MaxLength(100)]
public string Email { get; set; }
[Column("Company", TypeName = "ntext")]
[MaxLength(100)]
public string Company { get; set; }
[Column("Phone", TypeName = "ntext")]
[MaxLength(100)]
public string Phone { get; set; }
[Column("Address", TypeName = "ntext")]
[MaxLength(500)]
public string Address { get; set; }
[Column("IsDeleted", TypeName = "bit")]
public bool IsDeleted { get; set; }
}
작동하지 않습니다! 예외가 발생합니다. 저장소 쿼리 (DbSet, DbQuery, DbSqlQuery, DbRawSqlQuery)에 직접 바인딩되는 데이터는 지원되지 않습니다. 대신 DbSet에 Load를 호출하여 DbSet에 데이터를 채운 다음 로컬 데이터에 바인딩하십시오. WPF는 DbSet.Local에 바인딩합니다. WinForms가 DbSet.Local.ToBindingList()에 바인딩되어 있습니다. ASP.NET WebForms의 경우 쿼리에서 ToList()를 호출 한 결과에 바인딩하거나 Model Binding을 사용할 수 있습니다. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkId=389592를 참조하십시오. –
ToList() 부분이 없어진 것을 발견했습니다 !! :) 이 답변을 올바른 버전으로 업데이트하십시오 !! –