Проблема с настройкой SelectedIndex для Combobox - PullRequest
0 голосов
/ 17 мая 2019

У меня проблема с настройкой SelectedIndex и SelectedValue для Combobox.Я хочу установить для комбинированных списков индекс записи, выбранный из списка.

    private void ReadEditedOperation()
    {
        using (var context = new DataClasses2DataContext())
        {
            var operation = context.operacje.FirstOrDefault(x => x.id_operacji == EditedId);
            if (operation == null)
                throw new ArgumentException("No operation with given id in the database");

            OperationDto = new OperationDto()
            {
                Id = operation.id_operacji,
                Data = operation.data,
                Price = operation.kwota,
                CategoryId = operation.id_kategoria,
                UserId = operation.id_uzytkownika,
                PaymentFormId = operation.id_forma_platnosci,
                Description = operation.opis,
            };
        }
        SetEditedOperationData();
    }

    private void SetEditedOperationData()
    {
        comboBoxUsers.SelectedIndex = OperationDto.UserId;
        comboBoxCategory.SelectedItem = OperationDto.CategoryId;
        //comboBoxSubcategory.SelectedValue = OperationDto.PodcategoryId;
        dateTimePickerDate.Value = OperationDto.Data;
        //radiobuttonexpense.checked = ;
        comboBoxOperationForm.SelectedItem = OperationDto.PaymentFormId;
        textBoxPrice.Text = OperationDto.Price.ToString("0.00");
        richTextBoxDescription.Text = OperationDto.Description;
    }

ComboBoxUsers.SelectedIndex вроде работает.Когда я выбираю пользователя с идентификатором № 1, в выпадающем списке отображается пользователь с идентификатором 2. Когда я выбираю пользователя с идентификатором 2, он отображает идентификатор пользователя № 3. При выборе пользователя 3 происходит сбой.ComboBoxUsers.SelectedValue не работает вообще.Я понятия не имею, как это исправить.В остальном, только TextBoxes работает.

OperationDTO выглядит так:

public class OperationDto
{
    public int Id { get; set; }

    public DateTime Data { get; set; }

    public decimal Price { get; set; }

    public int CategoryId { get; set; }

    public string Category { get; set; }

    public int PodcategoryId { get; set; }

    public string Podcategory { get; set; }

    public int UserId { get; set; }

    public string Type { get; set; }

    public int? PaymentFormId { get; set; }

    public string PaymentForm { get; set; }

    public string Description { get; set; }

    public string Name { get; set; }

    public string Surname { get; set; }

    public string FullName => Name + " " + Surname;
}
...