C# 如何正确显示列表<;类别>;在ComboBox中,并使值成员指向选定的类对象?
我正在使用C#winform和Nhibernate作为ORM开发简单的概念教授 只需添加一项就可以了。每个项目都有一个类别表的外键 很抱歉,我无法上载类图的图像,我还不允许上载图像。 所以这些课程是C# 如何正确显示列表<;类别>;在ComboBox中,并使值成员指向选定的类对象?,c#,winforms,combobox,nhibernate-mapping,C#,Winforms,Combobox,Nhibernate Mapping,我正在使用C#winform和Nhibernate作为ORM开发简单的概念教授 只需添加一项就可以了。每个项目都有一个类别表的外键 很抱歉,我无法上载类图的图像,我还不允许上载图像。 所以这些课程是 public class Category { public virtual Guid Id { get; set; } public virtual string Name { get; set; } public virtual string NameArabic { g
public class Category
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual string NameArabic { get; set; }
public static bool AddCategory(Category category)
{
using (var session=NhibernateHelper.OpenSession())
{
using (var transaction=session.BeginTransaction())
{
session.SaveOrUpdate(category);
transaction.Commit();
}
return true;
}
}
public static IList<Category> GetAll()
{
using (var session=NhibernateHelper.OpenSession())
{
return session.QueryOver<Category>().List<Category>();
}
}
}
public class Item
{
public virtual Guid Id { get; set; }
public virtual string Description { get; set; }
public virtual Category Category { get; set; }
public static bool AddItem(Item item)
{
using (var session = NhibernateHelper.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
session.SaveOrUpdate(item);
transaction.Commit();
}
return true;
}
}
}
谢谢,用这个
YourComboBox.DataSource = YourList<Category>;
YourComboBox.DisplayMember = StringNameOfProperty;
我做对了吗?您想将完整列表绑定到组合框并显示guid吗?不,我想显示列表中的任何成员,比如name属性,我想要指向包含name属性的category对象的内容。因此,我可以将其传递给insert查询,这将不会导致复制类别条目。好的,我认为这应该适用于您:
YourComboBox.DataSource=List;YourComboBox.DisplayMember=StringNameOfProperty代码>。以及使用var x=(Category)YourComboBox获得的属性后面的项代码>
public CategoryMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.NameArabic);
}
public ItemMap()
{
Id(x => x.Id);
Map(x => x.Description);
References(x => x.Category);
}
YourComboBox.DataSource = YourList<Category>;
YourComboBox.DisplayMember = StringNameOfProperty;
var item = (Category) YourComboBox.SelectedItem;