wpf-Datagrid每行combobox设置不同值

C# 代码

public partial class MainWindow : Window
    {
        List<Student> students;
        public MainWindow()
        {
            InitializeComponent();
            students = new List<Student>();
            students.Add(new Student() { Id = 1, SelectedOption = 0, options = new List<select>() { new select() { selectId = 1, TeamName = "Name1" }, new select() { selectId = 2, TeamName = "Name2" } } });
            students.Add(new Student() { Id = 2, SelectedOption = 0, options = new List<select>() { new select() { selectId = 1, TeamName = "Name3" }, new select() { selectId = 2, TeamName = "Name4" } } });
            students.Add(new Student() { Id = 3, SelectedOption = 0, options = new List<select>() { new select() { selectId = 1, TeamName = "Name5" }, new select() { selectId = 2, TeamName = "Name6" } } });

            dg1.ItemsSource = students;
        }
        public class Student
        {
            public int Id { get; set; }
            public int SelectedOption { get; set; }
            public List<select> options { get; set; }
            public Student()
            {
                options = new List<select>();
            }
        }
        public class Option
        {
            public List<string> myoption { get; set; }

            public Option()
            {
                myoption = new List<string>();
            }
        }
        public class select
        {
            public int selectId { get; set; }
            public string TeamName { get; set; }
        }
    }

xaml:

  <DataGrid Name="dg1" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Id" Binding="{Binding Id}" />
                <DataGridComboBoxColumn Header="Options" SelectedValueBinding="{Binding SelectedOption}" SelectedValuePath="selectId" DisplayMemberPath="TeamName">
                    <DataGridComboBoxColumn.ElementStyle>
                        <Style TargetType="ComboBox">
                            <Setter Property="ItemsSource" Value="{Binding Path=options}" />
                        </Style>
                    </DataGridComboBoxColumn.ElementStyle>
                    <DataGridComboBoxColumn.EditingElementStyle>
                        <Style TargetType="ComboBox">
                            <Setter Property="ItemsSource" Value="{Binding Path=options}" />
                        </Style>
                    </DataGridComboBoxColumn.EditingElementStyle>
                </DataGridComboBoxColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

 

SelectedOption属性是默认Combobox选择第几行。


posted @ 2020-05-18 15:11  当年小清新  阅读(604)  评论(0编辑  收藏  举报