У меня есть выпадающий, который имеет источник пунктов типа ObservableCollection<Clinic>
Привязка пользовательского объекта к WPF Combobox
<ComboBox ItemsSource="{Binding Source={StaticResource ClinicList}}" DisplayMemberPath="Name" SelectedValue="{Binding Path=Name}" SelectedValuePath="Name"></ComboBox>
Эти выпадающие находится в пределах ListView, который связан с EmployeeClinics.
public class Employee{
public ObservableCollection<Clinic> EmployeeClinics { get; set; }
}
Когда я запускаю приложение, я вижу соответствующие клиники. И выпадающее меню, похоже, показывает правильные параметры, но когда я их обновляю, обновляется только имя, а не ClinicId (он хранит предыдущий ClinicId).
Редактировать: Аналогичным образом, когда я добавляю новую клинику в список и выбираю ее из параметров, это Id равен 0, когда я смотрю на коллекцию.
Вот моя клиника модель.
public class Clinic {
public int ClinicId { get; set; }
public string _name { get; set; }
public string Name {
get {
return _name;}
set {
if (_name != value) {
_name = value;
}
}
}
}
UPDATE: Благодаря @AyyappanSubramanian. Я продвигаюсь вперед. Я обновил свои объекты
public class Employee{
public ObservableCollection<ClinicView> EmployeeClinics { get; set; }
}
public class ClinicView {
private Clinic selectedClinic;
public Clinic SelectedClinic {
get { return selectedClinic; }
set {
selectedClinic = value;
selectedClinicId = selectedClinic.ClinicId;
}
}
private int selectedClinicId;
public int SelectedClinicId {
get { return selectedClinicId; }
}
}
XAML:
<ComboBox ItemsSource="{Binding Source={StaticResource ClinicList}}" DisplayMemberPath="Name" SelectedItem="{Binding SelectedClinic}"></ComboBox>
Изменение раскрывающиеся меню теперь правильно изменяет базовый объект и обновляет список, как хотелось бы. Теперь моя единственная проблема заключается в том, что в comboboxes не отображается текущий объект, просто показывается как пустой при запуске. Я не сработал с SelectedValue и Path без везения. Какие-либо предложения?
Можете ли вы опубликовать модель и модель, чтобы воспроизвести вашу проблему. –
Что происходит, когда вы меняете привязку с StaticResource на DynamicResource? – Markus
@AyyappanSubramanian Я обновил сообщение. Помогает ли это? Как и в ответе Фабио, я прокомментировал и могу получить имена, чтобы они отображались соответственно, но идентификаторы не обновляются на основе новых выборов. – markokstate