{/'title/':/'WPF DataGrid//u7684//u4e24//u4e2a//u4e0b//u62d6//u6846//u5b9e//u73b0//u4e24//u7ea7//u8054//u52a8,//u7b2c//u4e8c//u4e2a//u4e0b//u62d6//u6846//u7684//u6570//u636e//u4f1a//u8ddf//u968f//u7b2c//u4e00//u4e2a//u4e0b//u62d6//u6846//u6240//u9009//u4e2d//u7684//u6570//u636e//u8fdb//u884c//u6539//u52a8//uff0c//u4f46//u662f//u6bcf//u884c//u6570//u636e//u7684//u9009//u62e9//u4e0d//u5f71//u54cd//u5176//u4ed6//u884c//uff0c//u8bf7//u7ed9//u51fa//u8be6//u7ec6//u7684//u4ee3//u7801//u5185//u5bb9//uff1a//u4ee5//u4e0b//u662f//u4e00//u4e2a//u4f7f//u7528//u53d1//u5c55//u5e93//u7684//u6570//u636e//u7f51//u7edc//u5b9e//u73b0//u4e24//u7ea7//u8054//u52a8//u7684//u793a//u4f8b//u4ee3//u7801//uff1a//n//n//u9996//u5148//uff0c//u5728//u6587//u4ef6//u6587//u4ef6//u4e2d//u5b9a//u4e49//u4e00//u4e2a//u6570//u636e//u7f51//u7edc//u548c//u4e24//u4e2a//u4e0b//u62d6//u6846//uff1a//n```xml<DataGrid x:Name=/'dataGrid/' AutoGenerateColumns=/'False/'> <DataGrid.Columns> <DataGridTextColumn Header=/'Name/' Binding=/'{Binding Name}/' /> <DataGridTemplateColumn Header=/'Country/'> <DataGridTemplateColumn.CellTemplate> <ComboBox ItemsSource=/'{Binding DataContext.Countries, RelativeSource={RelativeSource AncestorType={x:Type Window}}}/' SelectedItem=/'{Binding Country}/' SelectedValuePath=/'Name/' DisplayMemberPath=/'Name/' SelectionChanged=/'CountryComboBox_SelectionChanged/' /> </DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn Header=/'City/'> <DataGridTemplateColumn.CellTemplate> <ComboBox ItemsSource=/'{Binding DataContext.GetCitiesByCountry(((MyModel)DataContext).Cities, Country), RelativeSource={RelativeSource AncestorType={x:Type Window}}}/' SelectedItem=/'{Binding City}/' SelectedValuePath=/'Name/' DisplayMemberPath=/'Name/' /> </DataGridTemplateColumn.CellTemplate> </DataGrid.Columns>csharppublic partial class MainWindow : Window{ public List Countries { get; set; } public List Cities { get; set; } public MainWindow() { InitializeComponent(); Countries = new List { new Country { Name = /'China/' }, new Country { Name = /'USA/' }, new Country { Name = /'UK/' } }; Cities = new List { new MyModel { Name = /'Beijing/', Country = /'China/' }, new MyModel { Name = /'Shanghai/', Country = /'China/' }, new MyModel { Name = /'New York/', Country = /'USA/' }, new MyModel { Name = /'Los Angeles/', Country = /'USA/' }, new MyModel { Name = /'London/', Country = /'UK/' }, new MyModel { Name = /'Manchester/', Country = /'UK/' } }; dataGrid.ItemsSource = Cities; } public List GetCitiesByCountry(List cities, string country) { return cities.Where(c => c.Country == country).ToList(); } private void CountryComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ComboBox comboBox = (ComboBox)sender; MyModel selectedModel = (MyModel)comboBox.DataContext; selectedModel.City = null; // //u6e05//u9664//u57ce//u5e02//u9009//u62e9 }}public class Country{ public string Name { get; set; }}public class MyModel{ public string Name { get; set; } public string Country { get; set; } public string City { get; set; }}//u5728//u8fd9//u4e2a//u793a//u4f8b//u4e2d//uff0c//u6570//u636e//u7f51//u7edc//u7ed1//u5b9a//u4e86//u4e00//u4e2a//u7c7b//u578b//u4e3a//MyModel///u7684//u96c6//u5408//u3002//u7b2c//u4e00//u4e2a//u4e0b//u62d6//u6846//u7ed1//u5b9a//u4e86//Countries///uff0c//u7b2c//u4e8c//u4e2a//u4e0b//u62d6//u6846//u7ed1//u5b9a//u4e86//GetCitiesByCountry///u65b9//u6cd5//u8fd4//u56de//u7684//u6839//u636e//u6240//u9009//u56fd//u5bb6//u8868//u5f81//u540e//u7684//u57ce//u5e02//u96c6//u5408//u3002//n//n//u5f53//u7b2c//u4e00//u4e2a//u4e0b//u62d6//u6846//u7684//u9009//u62e9//u6539//u52a8//u65f6//uff0c//u4f1a//u89e6//u53d1//CountryComboBox_SelectionChanged///u4e8b//u4ef6//uff0c//u4e8b//u4ef6//u4e2d//u4f1a//u6e05//u9664//u5f53//u524d//u884c//u7684//u57ce//u5e02//u9009//u62e9//uff0c//u4ee5//u5b9e//u73b0//u6bcf//u884c//u6570//u636e//u7684//u9009//u62e9//u4e0d//u5f71//u54cd//u5176//u4ed6//u884c//u3002//n//n//u5e0c//u671b//u8fd9//u4e2a//u793a//u4f8b//u5bf9//u60a8//u6709//u6548//u52a9//uff01


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

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