您好,这是LINQ to SQL查询:
private void Stk_DT_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataTable dt = new DataTable();
DataGrid grid = sender as DataGrid;
#region Buttons Picking Libres
using(BdCretsDataContext dc=new BdCretsDataContext())
{
var placement = (from p in dc.PICKING
where p.ART_CODE == ArtCode_TxtBox.Text
select new { p.R_PLACEMENT }).Distinct().ToList();
LB.ItemsSource = placement;
}
#endregion
}
通过此查询,我想填写一个ListBox
。但是我得到了这个结果:
我想要的只是: 53 。
感谢您的帮助
答案 0 :(得分:1)
关键是YourFile.dll
创建了一个对象集合,这些对象具有名为dll
的属性。由select new { p.R_PLACEMENT }
调用的该对象的R_PLACEMENT
返回该对象的字符串表示形式:ToString()
。您必须从该属性中解包或收集值:
ListBox
这仅返回值的集合。
答案 1 :(得分:-1)
这是因为您在select new { p.R_PLACEMENT }
中创建了一个新的(匿名)类型。
因此,您的placement
变量将保存此新类型的List<>
。 ListBox
不知道如何显示这种类型的项目。
要使ListBox
显示有用的内容,必须告诉它该匿名类型应该做什么。 ListBox
不能自行解决。
最简单的解决方案可能是像这样创建placement
:
var placement = (from p in dc.PICKING
where p.ART_CODE == ArtCode_TxtBox.Text
select p.R_PLACEMENT.ToString()).Distinct().ToList();
(从您的示例中推断出R_PLACEMENT
是某种数字类型。)后缀.ToString()
使placement
成为List<string>
,ListBox
将成为很高兴正确显示。