Quick WPF Question.
Here's my situation:
I have a DataGridComboBoxColumn
with an Enum
as ItemsSource
.
But of course I don't want to actually Displays the Enum Values.
I have a converter which looks up the according strings in a Dictionary according to the 'Enum Item'. That's all good and fancy. But where do I have to declare the converter?
I tried this:
<DataGridComboBoxColumn Width="120" Header="Expense.Column.FoodCode" ItemsSource="{Binding Source={StaticResource FoodCodes}}" SelectedItemBinding="{Binding FoodCode, Converter={StaticResource FoodCodeConverter}}" />
But SelectedItemBinding
is apparently the wrong place.
Which Property of DataGridComboBoxColumn
is responsible for the displayed item text?
Thanx in advance.
EDIT: So far I have:
<DataGridTemplateColumn Width="86" Header="Expense.Column.WageAccount" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding WageAccount, Converter={StaticResource WageAccountConverter}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{StaticResource WageAccounts}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Expenses.WaggeAccount, Converter={StaticResource WageAccountConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
OK. Finally I got it!
<fpc:DataGridTemplateColumn Width="86" Header="Expense.Column.WageAccount" >
<fpc:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding WageAccount, Converter={StaticResource WageAccountConverter}}"/>
</DataTemplate>
</fpc:DataGridTemplateColumn.CellTemplate>
<fpc:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{StaticResource WageAccounts}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Converter={StaticResource WageAccountConverter}}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</fpc:DataGridTemplateColumn.CellEditingTemplate>
</fpc:DataGridTemplateColumn>
Its basically what I posted in the Edit of the original question with one small differenct The Line:
<TextBlock Text="{Binding Expenses.WageAccount, Converter={StaticResource WageAccountConverter}}"/>
changed to:
<TextBlock Text="{Binding Converter={StaticResource WageAccountConverter}}"/>