我有一个名为Name
的班级,有一个属性。
public class Name
{
public string comboName { get; set; }
}
我正在尝试运行LINQ查询以返回所有FullName
,然后为每个Name
类创建一个实例,将FullName
分配给属性comboName
}。实例会添加到List
,然后我希望将List
值添加到ComboBox1
下拉值。下面是我到目前为止编写的代码。
void ComboBox1_Loaded(object sender, RoutedEventArgs e)
{
GiftIdeasDataContext dc = new GiftIdeasDataContext();
var qry = from r in dc.Recipients
select new Name()
{
comboName = r.FullName
};
List<Name> lst = qry.ToList();
ComboBox1.ItemsSource = lst;
}
问题:执行代码时,ComboBox1
下拉列表仅显示字符串'myMemory.Name'9次(Recipient
中的名称数量表)。我应该只创建一个列表并将字符串值分配给列表而不是使用类吗?
到目前为止,我一直只使用c#的控制台窗口,这是我使用WPF的第一个项目,所以感谢任何帮助。
答案 0 :(得分:2)
ComboBox
需要知道您希望如何显示Name
课程的实例。由于您没有明确说明,它使用Name.ToString()
来显示您的Name
个实例。
您可以通过将ComboBox
设置为Name
,明确告诉ComboBox1.DisplayMemberPath
如何显示comboName
课程的实例。
答案 1 :(得分:0)
List<Name> lst= from r in dc.Recipients
select new Name()
{
comboName = r.FullName
}.ToList<Name>();
或者您可以转换如下:
List<Name> lst = (List<Name>)qry.ToList();
答案 2 :(得分:0)
var lst = dc.Recipients.Select(r => new Name{ comboName = r.FullName }).ToList();