Я пытаюсь изменить comboBox или каталог, чтобы показать свойство «Имя» из набора коллекций, чтобы показать два из них, например, «Имя» и «Возраст».
Я уже пытался добавить его в качестве второго параметра как [КоллекцияDisplayMemberPathCollection("Имя","ВтораяСтрока")] и изменение атрибута, чтобы он принимал два параметра.
//The autogenerated property in the model:
[AutoGenerateProperty]
[Display("User")]
[PropertyOrder(1)]
[DisplayMemberPathCollection("Name")]
[SelectedItemCollection("SelectedUser")]
//I changed it to this:
[AutoGenerateProperty]
[Display("User")]
[PropertyOrder(1)]
[DisplayMemberPathCollection("Name","Age")]
[SelectedItemCollection("SelectedUser")]
//The attribute modification I made to get two parameters:
public DisplayMemberPathCollectionAttribute(string first = "", string second = "")
{
DisplayMemberPath = first + second;
}
Я хотел бы, чтобы эти два поля отображались в комбо, но что-то просто не работает, и я пока не нашел ничего полезного.





То, что ты делаешь, было невозможно. DisplayMemberPath не поддерживает составные имена полей. Правильный способ — создать новое поле для объединения двух полей и сделать так, чтобы «DisplayMemberPathCollection» ссылалась на новое поле.
Например, вы можете определить «FullName» в своем классе модели:
public class User:PropertyChangeBase
{
private string name;
public string Name
{
get { return name; }
set
{
name = value;
NotifyPropertyChanged();
}
}
private string lastName;
public string LastName
{
get { return lastName; }
set
{
lastName = value;
NotifyPropertyChanged();
}
}
private string fullName;
public string FullName
{
get { return Name + " " + LastName; }
}
private int age;
public int Age
{
get { return age; }
set
{
age = value;
NotifyPropertyChanged();
}
}
}
'DisplayMemberPathCollection' выглядит так: [DisplayMemberPathCollection("FullName")], тогда в comboBoxItem отобразится полное имя.