2017-10-12 50 views
1

如何以编程方式设置DataGridComboBoxColumn项目选择?
我想用数据填充我的列表,并且comboboxitem应该从列表中设置选定的项目。如何在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); 
    } 

回答

0

绑定SelectedItemBinding prope rty serServoStep物件的物业:

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