我是wpf的新手,我想知道如何在数据网格中实现2个组合框列,其中第一个组合框包含国家/地区,另一个包含城市,因此在数据网格城市上进行编辑时,colunmn组合框由所选国家/地区过滤使用MVVM模式的国家组合框
由于
答案 0 :(得分:1)
当然这是可能的,最简单的方法是让你的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绑定到Data类的集合。您的Country-ComboBoy的ItemsSource绑定到Country,您的Cities-ComboBoy绑定到Cities,您的Country-CB的SelectedItem绑定到您的SelectedCountry(Mode = TwoWay)。