2017-10-12 54 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"/>