我是 wpf 的新手,我想知道如何在数据网格中实现 2 个组合框列,其中第一个组合框包含国家,另一个包含城市,因此在数据网格上编辑时,城市列组合框由国家组合框中选择的国家过滤使用 MVVM 模式
谢谢
当然这是可能的,最简单的方法是让您的 ViewModel 进行过滤:
public class Data:ModelBase
{
public ObservableCollection<string> Countries { get; set; }
private List<City> _allCities = new List<City>();
public IEnumerable<City> Cities
{
get
{
if (_selectedCountry == null)
return _allCities;
return _allCities.Where(c => c.Country == _selectedCountry);
}
}
public Data()
{
Countries = new ObservableCollection<string>();
//Fill _allCities and Countries here
}
private string _selectedCountry;
public string SelectedCountry
{
get
{
return _selectedCountry;
}
set
{
if (_selectedCountry != value)
{
_selectedCountry = value;
OnPropertyChanged("SelectedCountry");
OnPropertyChanged("Cities");
}
}
}
}
public class City
{
public string Country { get; set; }
public string Name { get; set; }
}
现在您将 DataGrid 绑定到您的数据类的集合。Country-ComboBoy 的 ItemsSource 绑定到 Country,Cities-ComboBoy 的 ItemsSource 绑定到 Cities, Country-CB 的 SelectedItem 绑定到 SelectedCountry(模式=TwoWay)。