oldjunior
oldjunior

Reputation: 16

c# wpf Combox value in editable field must be different that displaymemberpath

I have a Combobox with a concate string in displaymemberpath ('DescriptionComplete' in code-behind below), and that is what i get in the editable field BUT this is only the IdEchantillon that i want into the editable field... How must i do please ?

XAML:

<ComboBox x:Name="cbEchantillon" SelectedValue="{Binding CurrentEchantillon.IdEchantillon}" ItemsSource="{Binding OcEchantillon}" DisplayMemberPath="DescriptionComplete" SelectedValuePath="IdEchantillon" SelectedItem="{Binding CurrentEchantillon}" Text="{Binding IdEchantillon}" IsEditable="True" Width="355" FontSize="14" FontFamily="Courier New" SelectionChanged="cbEchantillon_SelectionChanged"></ComboBox>

Code behind:

public class Echantillon : ViewModelBase
    {
        private string _IdEchantillon;
        private string _Description;
        private DateTime _dateechan;
        private string _descriptionComplete;
}
    public string IdEchantillon
    {
        get { return _IdEchantillon; }
        set { _IdEchantillon = value; RaisePropertyChanged("IdEchantillon"); }
    }


    public string Description
    {
        get { return _Description; }
        set { _Description = value; RaisePropertyChanged("Description"); }
    }

    public DateTime Dateechan
    {
        get { return _dateechan; }
        set { _dateechan = value; RaisePropertyChanged("Dateechan"); }
    }

    public string DescriptionComplete
    {
        get { return string.Format("{0} {1} {2}", IdEchantillon.PadRight(20), Dateechan.ToShortDateString(), Description); }
        set { _descriptionComplete = value; }
    }

}

Upvotes: 0

Views: 84

Answers (1)

Nipheris
Nipheris

Reputation: 517

At first, please, cleanup your ComboBox property bindings. You should not create binding for SelectedValue, because you already have binding for SelectedItem property. The SelectedValue is determined by extracting the value by SelectedValuePath from the SelectedItem.

In case of binding to ViewModel, you should not also bind Text property. Use ItemsSource as you do, and set DisplayMemberPath property to what you want to show as the text representation of the every item in the bound collection.

Upvotes: 1

Related Questions