I'm working in huge application and I have one small problem My Application has two languages (Arabic / English). I have ComboBox And I would like to change the display content according to the language.
This is my ComboBox XAML:
<ComboBox x:Name="cmbCustomerGroup" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="5"
Margin="2" SelectedValuePath="CustomerGroupId" Validation.Error="Validation_Error"
SelectedValue="{Binding Path=CustomerGroupId, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, NotifyOnValidationError=True}">
<!--<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>-->
</ComboBox>
This is my method:
private void FillCustomerGroups()
{
var oClsCustomers = new ClsCustomerGroups();
var lstCustGrps = oClsCustomers.GetData();
cmbCustomerGroup.ItemsSource = lstCustGrps.ToList<TbCustomerGroups>();
cmbCustomerGroup.DisplayMemberPath = Helper.CurrLang == Helper.SystemLanguage.Arabic ? "CustomerGroupAName" : "CustomerGroupEName";
cmbCustomerGroup.SelectedValuePath = "CustomerGroupId";
}
I got this result:
This is my database:


This usually occurs when
DisplayMemberPathis set wrong, or bindable property is not a string and has no overridenToString()method.Try add new property to your
TbCustomerGroups, for exampleCurrentGroupNamelike thisThen set
cmbCustomerGroup.DisplayMemberPath = "CurrentGroupName"Also check that
CustomerGroupANameandCustomerGroupENameare strings or haveToString()methodUPDATE
Also don't use
<ComboBox.ItemTemplate>if you useDisplayMemberPath