Проблема со столбцом изображения в XtraTreeList - PullRequest
1 голос
/ 07 апреля 2011

Я использую элемент управления XtraTreeList.

Есть 2 столбца: первый для текста и второй для значка

Проблема: я не могу изменить значок по умолчанию (нулевой индекс в соответствующем списке изображений). В списке изображений 3 изображения.

Например, мне нужно показать значок, который расположен в 2 индекса

код

 TreeListColumn col = treeList1.Columns.Add();
            col.Caption = "Text";
            col.Visible = true;

            TreeListColumn colImage = treeList1.Columns.Add();
            colImage.Caption = "ImageColumn";
            colImage.Visible = true;


            RepositoryItemImageEdit imageEdit = new RepositoryItemImageEdit();
            imageEdit.Images = imageList;

            treeList1.RepositoryItems.Add(imageEdit);
            colImage.ColumnEdit = imageEdit;

            treeList1.BeginUnboundLoad();

            TreeListNode node = treeList1.AppendNode(new object[] { "trololo", 2}, null);

            node.SetValue(colImage.AbsoluteIndex, 2);

            treeList1.EndUnboundLoad();

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Спасибо всем

Использование RepositoryItemPictureEdit решило мою проблему.Немного сложный, но работает

 TreeListColumn col = treeList1.Columns.Add();
            col.Caption = "Text";
            col.Visible = true;

            TreeListColumn colImage = treeList1.Columns.Add();
            colImage.Caption = "ImageColumn";
            colImage.Visible = true;

            RepositoryItemPictureEdit imageEdit = new RepositoryItemPictureEdit();
            imageEdit.ShowMenu = false;

            treeList1.RepositoryItems.Add(imageEdit);
            colImage.ColumnEdit = imageEdit;

            treeList1.BeginUnboundLoad();

            Image img = imageList.Images[1];
            Bitmap bmp = new Bitmap(img);

            TreeListNode node = treeList1.AppendNode(new object[] { "trololo", bmp }, null);


            treeList1.EndUnboundLoad();
0 голосов
/ 07 апреля 2011

Эта задача должна быть реализована с использованием немного другого подхода.Во-первых, вы должны использовать RepositoryItemImageComboBox и заполнить его свойство Items.Каждый элемент имеет значение и ImageIndex.TreeList будет отображаться в изображении ячейки из элемента, значение которого равно значению ячейки.Вот код, который должен работать для вас:

        TreeListColumn col = treeList1.Columns.Add();
        col.Caption = "Text";
        col.Visible = true;

        TreeListColumn colImage = treeList1.Columns.Add();
        colImage.Caption = "ImageColumn";
        colImage.Visible = true;


        RepositoryItemImageComboBox imageEdit = new RepositoryItemImageComboBox();
        imageEdit.SmallImages = imageList;
        for(int i = 0; i < 3; i++)
            imageEdit.Items.Add(new ImageComboBoxItem(i, i)); // i.e. value and image index

        treeList1.RepositoryItems.Add(imageEdit);
        colImage.ColumnEdit = imageEdit;

        treeList1.BeginUnboundLoad();

        TreeListNode node = treeList1.AppendNode(new object[] { "trololo", 2 }, null);

        node.SetValue(colImage.AbsoluteIndex, 2);

        treeList1.EndUnboundLoad();
...