У меня есть сетка данных, связанная с таблицей данных с помощью ComboBoxColumn.XAML для этого столбца выглядит следующим образом:
<DataGridComboBoxColumn Header="Rep Name" SortMemberPath="RepName"
ItemsSource="{Binding UpdateSourceTrigger=PropertyChanged, Source={StaticResource EmployeeList}, Path=Employees}"
SelectedValueBinding="{Binding Mode=TwoWay, Path=EmpId}"
SelectedValuePath="EmpId" DisplayMemberPath="RepName" />
Мой класс сотрудников:
public class EmployeeList : INotifyPropertyChanged
{
private ObservableCollection<Employee> _employees = new ObservableCollection<Employee>();
public EmployeeList()
{
...
}
public ObservableCollection<Employee> Employees
{
get { return _employees; }
set { _employees = value; NotifyPropertyChanged("Employees"); }
}
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
public class Employee : INotifyPropertyChanged
{
private int _id;
public int EmpId
{
get { return _id; }
set { _id = value; OnPropertyChanged("EmpId"); }
}
public string RepName { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this,
new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
DataTable, служащий источником элементов длясетка содержит столбец «EmpId» и столбец «RepName».Поле со списком заполнено всеми моими сотрудниками, и когда я делаю выбор, это отражается в данных.Однако при загрузке экрана назначенный в данный момент сотрудник не выбирается по умолчанию в комбинированном списке.Я думал, что свойство SelectedValueBinding в выпадающем списке будет обрабатывать это ... что я делаю неправильно?
Обновление для уточнения:
Сетка данных привязана к объекту данныхкоторый включает столбец EmployeeID.Давайте предположим, что при загрузке экрана в таблице есть три строки с EmployeeIDs 1, 2 и 3. Мне нужен столбец комбинированного списка в первой строке, чтобы выбрать EmployeeID 1, во второй строке выбрать EmployeeID 2 ив третьей строке выбран EmployeeID 3.