WPF DataGrid-自定义组合框时出现问题

WPF DataGrid-自定义组合框时出现问题,wpf,datagrid,binding,combobox,Wpf,Datagrid,Binding,Combobox,我有一个带有组合框绑定列的Datagrid,其工作原理如下: <tk:DataGridComboBoxColumn SelectedValueBinding="{Binding DefaultLocationID}" SelectedValuePath="LocationID" DisplayMemberPath="LocationName" Header="Defaul

我有一个带有组合框绑定列的Datagrid,其工作原理如下:

<tk:DataGridComboBoxColumn SelectedValueBinding="{Binding DefaultLocationID}"                                            
    SelectedValuePath="LocationID"
    DisplayMemberPath="LocationName"    
    Header="Default Location"
    ItemsSource="{Binding Source={StaticResource CustomerLocations}}">
</tk:DataGridComboBoxColumn>
最后,我想定制下拉列表,将“ID”和“Name”显示在一起,这样TemplateColumn似乎就是最好的选择。从小事做起,我无法使用下面的简单示例来替换标准DataGridComboxColumn。下拉列表看起来不错,但当我“选择”一个下拉项目时,它不接受并返回到上一个值。我尝试过“模式=双向”的变体,但没有成功。我需要“CellEditingTemplate”吗

DefaultLocationID是正在编辑的外键字段,而“LocationID”是“CustomerLocations”中的一列

<tk:DataGridTemplateColumn  Header="Default Location">
    <tk:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
            <ComboBox   VerticalAlignment="Top"   
                  SelectedItem="{Binding LocationID, Mode=TwoWay}" 
                  SelectedValue="{Binding DefaultLocationID, Mode=TwoWay}"  

                  ItemsSource="{Binding Source={StaticResource CustomerLocations}}"
                        SelectedValuePath="LocationID"
                        DisplayMemberPath="LocationName" >
              </ComboBox>
       </DataTemplate>
  </tk:DataGridTemplateColumn.CellTemplate>

谢谢

您可以发布CustomerLocations资源的相关部分吗?您还可以发布网格绑定到的类的类型吗

尝试从组合框中删除SelectedValuePath、DisplayMemberPath和SelectedValue

如果要在组合框中显示多个数据段,请参见下面的XAML

<ComboBox ...>
    <ComboBox.ItemTemplate>
        <DataTemplate>
             <StackPanel Orientation="Horizontal">
                  <TextBlock Text="{Binding LocationId}"} />
                  <TextBlock Text=" - "/>
                  <TextBlock Text="{Binding LocationName}"} />
             </StackPanel>
       </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>