加载表单后无法 select 组合框值

unable select combobox value after form is loaded

不能select 在将项目传递给表单后按值组合项目。 Comb 已正确填充,我通过文本显示了所有客户。

public OrderViewerForm(string orderId)
    {
        InitializeComponent();

        PopulateCustomerCombobox();
        
        PopulateForm(orderId);

        PopulateProductsTable();
    }

private void PopulateForm(string orderId)
    {
        OrderModel order = db.LoadOrder(orderId);

        List<ProductsOrderedModel> productsOrdered = db.ProductsOrdered_Load(orderIdValue.Text);

        orderIdValue.Text = order.Id.ToString();
        customerIdValue.Text = order.CustomerId.ToString();
        

        customerIdCombo.SelectedValue = order.CustomerId;

        
    }

private void PopulateCustomerCombobox()
    {
        customerIdCombo.Items.Clear();
        List<CustomerModel> customer = db.CustomerGet_All();

        foreach (CustomerModel c in customer)
        {
            customerIdCombo.DisplayMember = "Text";
            customerIdCombo.ValueMember = "Value";

            customerIdCombo.Items.Add(new { Text = c.FullInfo, Value = c.Id });
        }
    }

最后 order.CustomerId 设置正确但 customerIdCombo.SelectedValue 保持为空。我做错了什么?

我建议在这里切换到数据绑定。顺便说一句,你的 foreach 看起来很奇怪。

private void PopulateCustomerCombobox()
{
    customerIdCombo.DisplayMember = "Text";
    customerIdCombo.ValueMember = "Value";

    customerIdCombo.DataSource = db.CustomerGet_All().Select(c=> new { Text = c.FullInfo, Value = c.Id});
}

考虑一下你可能想放弃匿名类型的东西。为什么不简单地绑定您从 CustomerGet_All 获得的列表?