Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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# WCF-组合框中的列表_C#_Winforms_Wcf - Fatal编程技术网

C# WCF-组合框中的列表

C# WCF-组合框中的列表,c#,winforms,wcf,C#,Winforms,Wcf,我想从列表的一个字段中获取国家名称,并将其放入组合框: public TravelAgencyResponse GetInformation(TravelAgencyRequest request) { TravelAgencyResponse response = new TravelAgencyResponse(); // response.Offers = new OfferDto(); response.Offers = new

我想从列表的一个字段中获取国家名称,并将其放入组合框:

    public TravelAgencyResponse GetInformation(TravelAgencyRequest request)
    {
        TravelAgencyResponse response = new TravelAgencyResponse();
       // response.Offers = new OfferDto();
       response.Offers = new List<DataTransferObjects.OfferDto>();            
       response.Offers.Add(new DataTransferObjects.OfferDto()
        {
            IdOffer = 0,
            KindOfAccommodation = "Hotel",
            Country = "Spain",
        });

        response.Offers.Add(new DataTransferObjects.OfferDto()
        {
             IdOffer = 1,
             KindOfAccommodation = "Hotel",
             Country = "Italy",
         });

       response.ThisOffer = (from offer in response.Offers
                              where offer.Country == request.Country
                              select offer).FirstOrDefault();
        return response;
    }
我只给出了第一个国家或类似的国家:

 comboBox1.Items.Add(response.ThisOffer.Country);
comboBox1.Items.Add(response);
我什么也没得到


我使用WCF的第一步!请谅解

因此,如果我正确理解了您的问题,您希望在组合框中填入任何
响应中包含的所有国家/地区。提供
国家/地区属性,对吗

既然你提到你是WPF的新手,我将跳过这一部分,并向你展示一种利用你现在所拥有的东西来完成它的方法

首先,您需要从
优惠中“提取”所有国家/地区,最好只提取一次并按字母顺序排序

List<string> countries = response.Offers
    .Select(o => o.Country) // We only need the "Country" of the offer
    .Distinct()             // Every country only once
    .OrderBy(c => c)        // Sort by name
    .ToList();              // make a List<string> out of it
但是,您需要确保
为空,手动添加的项和
数据源
不能很好地协同工作

如果您想预先选择某个国家(例如,
ThisOffer
中的国家),您可以设置组合框的
SelectedItem
属性:

comboBox1.SelectedItem = response.ThisOffer.Country;

但我无法对数据使用列表-\uError无法将类型“System.Linq.iorderenumerable”隐式转换为“System.Collections.Generic.List”。存在显式转换(是否缺少转换?),我得到的信息是ComboBox不包含ItemsSource的定义,DataSource是否相同?@KlaudiaW。我更新了声明,您也需要调用
ToList
,因为
ComboBox
没有包含项的定义来源:我以为您在使用WPF,我的错误。是的,您应该能够使用
数据源
,我将更新答案。
comboBox1.DataSource= countries;
comboBox1.SelectedItem = response.ThisOffer.Country;