如何在DataGridComboBoxColumn中设置选择?

时间:2017-10-12 07:53:18

标签: c# wpf data-binding datagridcomboboxcolumn

如何以编程方式设置DataGridComboBoxColumn项目选择?
我想用数据填充我的列表,组合框应该从列表中设置所选项。

但我找不到任何方法来实现这一点。

在此示例中,选择应为"转发"

XAML:

<DataGrid ItemsSource="{Binding }" x:Name="dgSFD"  AlternatingRowBackground="BlanchedAlmond" SelectionChanged="dgSFD_SelectionChanged" AutoGenerateColumns="False">
    <DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding Path=sID}" Header="Step ID"/>
    <DataGridComboBoxColumn x:Name="cbServo"  Header="Servo" SelectedItemBinding="{Binding Servo, Mode =TwoWay}" SelectedValuePath="sFunctionName ,Mode=TwoWay"  DisplayMemberPath="sFunctionName"/>
    </DataGrid>

 public class Step
    {
        public string sID { get; set; }
        public Servo serServo { get; set; }
    }
 public class Servo
    {
        public string sFunction { get; set; }
        public string sServo { get; set; }
     }

C#

    public static List<Step> listStep { get; set; }
    public static List<Servo> listServo { get; set; }



    public MainWindow()
    {
        InitializeComponent();
    }




    public void loadList() 
    {
        dgSFD.ItemsSource = listStep;
        cbServo.ItemsSource = listServo;
    }


    public void testfill()
    {
        Servo newServo = new Servo();
        newServo.sFunctionName = "Forward";
        newServo.sServo = "Left";
        listServo.Add(newServo);

        Step newStep = new Step();
        newStep.serServo = newServo;
        newStep.sID = "1";


        listStep.Add(newStep);
    }

1 个答案:

答案 0 :(得分:0)

SelectedItemBinding属性绑定到serServo对象的Step属性:

<DataGridComboBoxColumn x:Name="cbServo" Header="Servo" SelectedItemBinding="{Binding serServo, Mode=TwoWay}" DisplayMemberPath="sFunction"/>