Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表视图中列出的选定组合框项目_C#_Wpf_Linq_Listview_Combobox - Fatal编程技术网

C# 列表视图中列出的选定组合框项目

C# 列表视图中列出的选定组合框项目,c#,wpf,linq,listview,combobox,C#,Wpf,Linq,Listview,Combobox,我想使用LINQ to SQL在listView中列出选定的组合框项。 就我的理解而言,我所使用的编码应该可以工作,但不能。(此编码应该只在listview中显示CB项) 我基本上想做一个购物车,但只想显示选中的物品。谢谢。我认为你的问题在于: listview.ItemsSource = DC.tblProducts.Where(p => p.ProductName == pname); 来自Microsoft的可枚举文档。其中,emphasis mine(): 此方法通过使用延迟执行

我想使用LINQ to SQL在listView中列出选定的组合框项。 就我的理解而言,我所使用的编码应该可以工作,但不能。(此编码应该只在listview中显示CB项)


我基本上想做一个购物车,但只想显示选中的物品。谢谢。

我认为你的问题在于:

listview.ItemsSource = DC.tblProducts.Where(p => p.ProductName == pname);
来自Microsoft的可枚举文档。其中,emphasis mine():

此方法通过使用延迟执行来实现。直接的 返回值是一个对象,它存储了所有需要的信息 执行操作所需的。此方法表示的查询 在通过调用其 GetEnumerator方法直接使用或使用Visual C#中的foreach或For 每一个都在visualbasic中

LINQ语句已定义但未计算,因此没有ItemsSource可以确定的值。尝试:

string pname = cbItem.SelectedItem.ToString();
var result = DC.tblProducts.Where(p => p.ProductName == pname);

var myList = new List<TblProductType>();
foreach(var v in result)
{
    myList.Add(v);
}
listview.ItemsSource = myList;
string pname=cbItem.SelectedItem.ToString();
var result=DC.tblProducts.Where(p=>p.ProductName==pname);
var myList=新列表();
foreach(结果中的var v)
{
添加(v);
}
listview.ItemsSource=myList;

使用上面的代码片段会遇到什么问题?您是否在尝试放置筛选器的表(DC.tblProducts)中获取数据?什么是DC.TBL产品?它是一个数据集还是EF对象?您能发布一些代码来指示您在cbItem中拥有的对象的属性吗?您已经字符串化了整个对象,而不仅仅是名称,这将导致Where返回null。您的问题表明您正在尝试列出选定的项目,复数形式。ComboBox.SelectedItem将仅绑定到单个对象,不是集合-如果您使用的是某种自定义/第三方多选组合框,则该组合框的XAML可能是获得良好答案的关键。@AyyappanSubramanian DC.tblProducts是一个DataClassessDataContext,很抱歉,我不知道您如何称呼它。@goobering很有意义,列出时使用的最佳工具是什么“收集”对象?
string pname = cbItem.SelectedItem.ToString();
var result = DC.tblProducts.Where(p => p.ProductName == pname);

var myList = new List<TblProductType>();
foreach(var v in result)
{
    myList.Add(v);
}
listview.ItemsSource = myList;