gpt4 book ai didi

c# - 直接用 LINQ 查询的结果填充 ComboBox

转载 作者:太空狗 更新时间:2023-10-30 00:50:22 24 4
gpt4 key购买 nike

我是 c#/.net/WPF 的新手。

我正在尝试用从数据库中获取的值填充一个组合框。

LINQ 查询获取数据库中所有公司的列表,代码尝试用该列表填充 ComboBox 控件。

下面的C#代码成功获取了结果(我之前是用MessageBox.Show()输出的)

我的下一步是删除该位,而是放入填充此 ComboBox 的代码:

<ComboBox Name="companyComboBox"/>

C#:

    using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.SqlClient;
using System.Data.Linq;
using System.Data.Linq.Mapping;

namespace LeadSystem
{
/// <summary>
/// Interaction logic for NewLead.xaml
/// </summary>
public partial class NewLead : Window
{

public NewLead()
{


// Use a connection string.
DataContext db = new DataContext("Data Source=HP\\SQLEXPRESS;Initial Catalog=LeadSystem;Integrated Security=True");

// Get a typed table to run queries.
Table<Company> Companies = db.GetTable<Company>();

// Attach the log to show generated SQL.
db.Log = Console.Out;

// Query for all companies.
var companyQuery =
from c in Companies
select new { Name = c.CompanyName, ID = c.CompanyID };

companyComboBox.ItemsSource = companyQuery.ToList();
companyComboBox.DisplayMemberPath = "Name";
companyComboBox.SelectedValuePath = "ID";
InitializeComponent();

}
}
}

我一直遇到的问题是:

Object reference not set to an instance of an object.

^ 它在谈论 companyQuery,我尝试用它来填充组合框。

我认为这一定是因为延迟执行,所以我在网上四处寻找解决方案。我见过几个人说要在那行代码的末尾添加 ToList(),但没有任何改变。

那么,这里有人知道我做错了什么吗??

我浏览了整个网络(包括 Stackoverflow),但没有任何东西可以帮助我解决问题。

此外,如果一次问两个问题还不算厚颜无耻的话……如何在我的 ComboBox 中设置选定值和显示值?它是否正确,我已经拥有它的方式?

谢谢

最佳答案

尝试在initializeComponent之后填充companyComboBox

 InitializeComponent();
companyComboBox.ItemsSource = companyQuery.ToList();
companyComboBox.DisplayMemberPath = "Name";
companyComboBox.SelectedValuePath = "ID";

关于c# - 直接用 LINQ 查询的结果填充 ComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31880767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com