wpf的datagrid两个下拉框实现两级联动静态数据源
要实现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();
}
}
这样,当选择第一个下拉框的选项时,第二个下拉框的选项也会相应地更新
原文地址: https://www.cveoy.top/t/topic/hXo0 著作权归作者所有。请勿转载和采集!