【问题标题】:Bind multiple dropdowns from a single list绑定单个列表中的多个下拉列表
【发布时间】:2015-12-13 16:08:23
【问题描述】:

在 MVC 中,我有一个 List<CityModel>,其中包含 CityID、City、StateID、State、CountryID、Country。通过使用以下代码,我可以获得引用列表:

IEnumerable<SelectListItem> objCityList;
IEnumerable<SelectListItem> objStateList;
IEnumerable<SelectListItem> objCountryList;
using (CityModel objCityModel = new CityModel())
{
  List<CityModel> cityList =  objCityModel.getCityList();
  objCityList = cityList.AsEnumerable().Select(m => new SelectListItem() {
                    Text = m.City,
                    Value = Convert.ToString(m.CityID)
                });
}

如何从cityList 绑定不同的州和国家?

【问题讨论】:

    标签: c# asp.net-mvc linq


    【解决方案1】:

    据我了解,您想从 City 列表中提取州和国家/地区列表。为此,您可以使用类似的东西

    objStateList = cityList.GroupBy(item => item.StateID, (key, items) => new SelectListItem
    {
        Text = items.First().State,
        Value = Convert.ToString(key)
    });
    objCountryList = cityList.GroupBy(item => item.CountryID, (key, items) => new SelectListItem
    {
        Text = items.First().Country,
        Value = Convert.ToString(key)
    });
    

    【讨论】:

      【解决方案2】:

      您只需要使用一个列表,但更改组合框中显示的属性。所选项目与列表中的对象类型相同。

      在您的视图模型中,只需公开 CityList 属性,然后将组合框 ItemsSource 绑定到该属性。

      例如,您可以在 XAML 中执行所有这些操作,如下所示:

      <ComboBox ItemsSource="{Binding CityList}"
               DisplayMemberPath="City"
               SelectedItem={Binding SelectedCity, Mode=TwoWay>
      </ComboBox>
      
      <ComboBox ItemsSource="{Binding CityList}"
               DisplayMemberPath="County"
               SelectedItem={Binding SelectedCounty, Mode=TwoWay>
      </ComboBox>
      
      <ComboBox ItemsSource="{Binding CityList}"
               DisplayMemberPath="State"
               SelectedItem={Binding SelectedState, Mode=TwoWay>
      </ComboBox>
      

      【讨论】:

        猜你喜欢
        • 2021-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-02
        • 1970-01-01
        相关资源
        最近更新 更多