2012-05-14 4 views
1

У меня есть DevExpress DxGrid с двумя колоннами с ComboboxEdit CellTemplateПолучить DxGrid Колонка FieldName внутри IValueConverter Преобразование функции

<dxg:GridControl Name="grid"> 
    <dxg:GridControl.Columns> 
     <dxg:GridColumn FieldName="Size_ID" CellTemplate="{DynamicResource DimensionComboBox}"/> 
     <dxg:GridColumn FieldName="Color_ID" CellTemplate="{DynamicResource DimensionComboBox}"/> 
    </dxg:GridControl.Columns> 
</dxg:GridControl> 

в моем app.xaml я определил шаблон

<DataTemplate x:Key="DimensionComboBox" > 
       <dxe:ComboBoxEdit x:Name="PART_Editor" DisplayMember="Grp_Property_Desc" ValueMember="Grp_Property_ID" > 
        <dxe:ComboBoxEdit.ItemsSource> 
         <Binding Path="Data"> 
          <Binding.Converter> 
           <local:GridComboBoxItemSourceConverter/> 
          </Binding.Converter> 
         </Binding> 
        </dxe:ComboBoxEdit.ItemsSource> 
       </dxe:ComboBoxEdit> 
      </DataTemplate> 

Я хотел бы знать имя поля столбца в моем конверторе, чтобы я мог вернуть данные в соответствии с колонкой, которая называлась преобразователем

Public Class GridComboBoxItemSourceConverter 
    Implements IValueConverter 

#Region "IValueConverter Members" 

    Public Function Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert 

'if field name is color_id then return data for color_id 

'if field name is size_id then return data for size_id 

    End Function 

    Public Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack 
     Throw New NotImplementedException() 
    End Function 
#End Region 
End Class 

Есть ли способ сделать это, не создавая класс конвертера для каждого столбца, у меня есть много других столбцов для преобразования.

ответ

1

Вы могли бы создать DataTemplate для каждого столбца и указать имя столбца в параметре преобразователя

+0

Есть ли способ, чтобы достичь этой цели без второго DataTemplate? –