要实现WPF的DataGrid中的两个下拉框的两级联动,可以使用静态数据源来实现。下面是一个简单的示例:

首先,创建一个ViewModel类来作为数据源。该类中包含两个属性,用于存储两个下拉框的选项和选中值。

public class ViewModel
{
    public List<string> FirstLevelOptions { get; set; }
    public string SelectedFirstLevelOption { get; set; }

    public List<string> SecondLevelOptions { get; set; }
    public string SelectedSecondLevelOption { get; set; }

    public ViewModel()
    {
        // 初始化选项
        FirstLevelOptions = new List<string> { "Option 1", "Option 2", "Option 3" };
        SecondLevelOptions = new List<string> { "Suboption 1", "Suboption 2", "Suboption 3" };
    }
}

然后,在XAML中创建一个DataGrid,并绑定ViewModel中的属性。使用DataGridTemplateColumn来创建两个下拉框列,并使用Binding来绑定选项和选中值。

<DataGrid ItemsSource="{Binding FirstLevelOptions}" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="First Level">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox ItemsSource="{Binding DataContext.FirstLevelOptions, RelativeSource={RelativeSource AncestorType=DataGrid}}"
                              SelectedItem="{Binding DataContext.SelectedFirstLevelOption, RelativeSource={RelativeSource AncestorType=DataGrid}}">
                    </ComboBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <DataGridTemplateColumn Header="Second Level">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox ItemsSource="{Binding DataContext.SecondLevelOptions, RelativeSource={RelativeSource AncestorType=DataGrid}}"
                              SelectedItem="{Binding DataContext.SelectedSecondLevelOption, RelativeSource={RelativeSource AncestorType=DataGrid}}">
                    </ComboBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

最后,在MainWindow.xaml.cs中设置DataContext,并初始化ViewModel。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = new ViewModel();
    }
}

这样,当选择第一个下拉框的选项时,第二个下拉框的选项也会相应地更新

wpf的datagrid两个下拉框实现两级联动静态数据源

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

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