Telerik Radgrid GridViewComboBox не работает должным образом - PullRequest
0 голосов
/ 14 января 2019

Я должен реализовать простое RadGridview, которое показывает присутствие клиентов, с возможностью делегировать один из других подарков, если человек не может участвовать в собрании. Почти все работает, как и ожидалось, за исключением того, что выпадающий ведет себя неправильно.

Я создал демонстрационный проект, который вы можете сделать из здесь

Для того, кто не увидит источник, вот код

  public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
    public  ObservableCollection<Item> Items { get; set; }
    public RadForm1()
    {
        InitializeComponent();
        this.Load += RadForm1_Load;

        radGridView1.CellEditorInitialized += RadGridView1_CellEditorInitialized;
    }

    private void RadGridView1_CellEditorInitialized(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
    {
        if (e.Column.Name == "DelegationId")
        {
            if (!(e.Column is GridViewComboBoxColumn comboBoxColumn)) return;

            if (!(radGridView1.DataSource is IEnumerable<Item> items) ||
                !(e.Row.DataBoundItem is Item currentItem)) return;

            var avaiableItems = items.Where(x => x.Id != currentItem.Id && x.Present).ToList();

            avaiableItems.Insert(0, null);
            comboBoxColumn.DataSource = avaiableItems;
        }
    }

    private void RadForm1_Load(object sender, EventArgs e)
    {
        Items  = new ObservableCollection<Item>();

        for (int i = 0; i < 10; i++)
        {
            Items.Add( new Item{ Id = i, Name = $"Man_{i}"});
        }

        radGridView1.DataSource = Items;
    }
}

public class Item
{
    public  int Id { get; set; }
    public string Name { get; set; }

    public  bool Present { get; set; }

    public int? DelegationId{ get; set; }
}

Первая проблема, с которой я сталкиваюсь, заключается в том, что, когда я устанавливаю подарок для "Man_1", затем вкладка и я иду, чтобы отредактировать Делегирование для "Man_2", я получил пустой выпадающий список, в то время как я ожидал увидеть "Man_1" .

enter image description here

Если я делаю на «Man_3» после того, как на «Man_2» он показывает «Man_1» внутри выпадающего списка

Это довольно странно, но то, что происходит позже, еще хуже.

Сейчас я в такой ситуации

enter image description here

До сих пор все вроде нормально. если я просто нажму на первую строку в столбце поля со списком («Делегирование») Я получил

enter image description here (кажется, что значение каким-то образом было удалено)

Теперь, если я нажимаю на ячейку (всегда «Делегирование»), отличную от первой, отображаются значения

enter image description here

Что я делаю не так? Спасибо

...