在WPF中进行下拉框动态绑定,可以通过以下步骤实现:

1.定义一个数据源,可以是一个集合或者一个数据库查询结果。

2.在XAML中定义一个ComboBox控件,并设置它的ItemsSource属性为数据源。

3.设置ComboBox控件的DisplayMemberPath属性为数据源中要显示的字段名,SelectedValuePath属性为数据源中要绑定的字段名。

4.在ViewModel中定义一个属性,用于绑定ComboBox控件的SelectedValue属性。

5.在ViewModel中初始化数据源,并将该数据源赋值给ComboBox控件的ItemsSource属性。

6.在ViewModel中处理ComboBox控件的SelectedValueChanged事件,根据选择的值更新ViewModel中的属性值。

7.在XAML中绑定ViewModel中的属性到ComboBox控件的SelectedValue属性。

示例代码:

1.定义一个数据源

public class City
{
    public string Name { get; set; }
    public string Code { get; set; }
}

public class CityList : List<City>
{
    public CityList()
    {
        Add(new City() { Name = "北京", Code = "001" });
        Add(new City() { Name = "上海", Code = "002" });
        Add(new City() { Name = "广州", Code = "003" });
        Add(new City() { Name = "深圳", Code = "004" });
    }
}

2.在XAML中定义一个ComboBox控件

<ComboBox ItemsSource="{Binding CityList}"
          DisplayMemberPath="Name"
          SelectedValuePath="Code"
          SelectedValue="{Binding SelectedCityCode}" />

3.在ViewModel中定义一个属性

private string _selectedCityCode;
public string SelectedCityCode
{
    get { return _selectedCityCode; }
    set
    {
        if (_selectedCityCode != value)
        {
            _selectedCityCode = value;
            OnPropertyChanged("SelectedCityCode");
        }
    }
}

4.在ViewModel中初始化数据源

public CityList CityList { get; set; }

public ViewModel()
{
    CityList = new CityList();
}

5.在ViewModel中处理ComboBox控件的SelectedValueChanged事件

private void ComboBox_SelectedValueChanged(object sender, EventArgs e)
{
    var comboBox = sender as ComboBox;
    SelectedCityCode = comboBox.SelectedValue as string;
}

6.在XAML中绑定ViewModel中的属性到ComboBox控件的SelectedValue属性

<ComboBox ItemsSource="{Binding CityList}"
          DisplayMemberPath="Name"
          SelectedValuePath="Code"
          SelectedValue="{Binding SelectedCityCode, Mode=TwoWay}" />

原文地址: http://www.cveoy.top/t/topic/bggd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录