c# wpf可编辑字段中的Combox值必须与displaymemberpath不同

本文关键字:不同 displaymemberpath Combox wpf 编辑 字段 | 更新日期: 2023-09-27 18:17:31

我有一个组合框在displaymemberpath ('DescriptionComplete'在下面的代码后面),这就是我在可编辑字段中得到的,但这只是我想要进入可编辑字段的IdEchantillon…我该怎么做呢?

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>

背后的代码:

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; }
    }
}

c# wpf可编辑字段中的Combox值必须与displaymemberpath不同

首先,请清理您的ComboBox属性绑定。您不应该为SelectedValue创建绑定,因为您已经为SelectedItem属性创建了绑定。SelectedValueSelectedItem中提取SelectedValuePath的值来确定。

在绑定到ViewModel的情况下,你不应该绑定Text属性。请使用ItemsSource,并将DisplayMemberPath属性设置为您希望显示为绑定集合中每个项目的文本表示形式的内容。