首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Infragistics -组合框作为列

Infragistics -组合框作为列
EN

Stack Overflow用户
提问于 2011-09-01 17:59:40
回答 3查看 25.8K关注 0票数 4

我有一个问题的UltraGrid控制从InFragurs.我已经创建了一个包含一些值的超级方框:

代码语言:javascript
复制
 UltraCombo ultraComboPaneel = new UltraCombo();
        ultraComboPaneel.DataSource = articleList;
        ultraComboPaneel.ValueMember = "ArticleID";
        ultraComboPaneel.DisplayMember = "Name";

现在我有了一个UltraGrid,我想把这个ultraCombo放在一个单元格中,这样我就可以选择ultracombo中的一项作为单元格值。我在代码和超级网格设计器中都尝试过,但我似乎找不到一种方法。

你们谁有主意了吗?如有需要,可提供更多信息

编辑:

我发现了像这样的东西

代码语言:javascript
复制
UltraGridColumn ugc = ultraGridTypePaneel.DisplayLayout.Bands[0].Columns.Add("combo");
ultraGridTypePaneel.DisplayLayout.Bands[0].Columns["combo"].EditorControl = ultraComboPaneel;

我觉得我在正确的道路上,但它仍然没有显示在屏幕上…

EN

回答 3

Stack Overflow用户

发布于 2011-09-02 00:35:46

UltraCombo提供了大量的功能。如果您所需要的只是从列表中选择一项的能力,您可能会发现网格的ValueLists提供了更好的解决方案。

下面是一些代码,可以帮助您入门:

代码语言:javascript
复制
    private void myGrid_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
    {
        const string colorValueList = @"ColorValueList";

        if (!e.Layout.ValueLists.Exists(colorValueList))
        {
            ValueList svl = e.Layout.ValueLists.Add(colorValueList);
            svl.ValueListItems.Add(1, "Red");
            svl.ValueListItems.Add(2, "Green");
            svl.ValueListItems.Add(3, "Blue");
        }
        e.Layout.Bands[0].Columns["Color"].ValueList = e.Layout.ValueLists[colorValueList];
    }
票数 3
EN

Stack Overflow用户

发布于 2011-11-10 18:06:10

您可以在下面的链接中找到一些可以用来将DropDown放入UltraGrid单元格的方法:

http://devcenter.infragistics.com/Support/KnowledgeBaseArticle.aspx?ArticleID=7841

回到你当前的代码片段--你就快做到了:

首先,您应该将UltraCombo的绑定上下文设置为将使用您的UltraCombo的形式的BindingContext:

ultraComboPaneel.BindingContext = this.BindingContext;

请注意,设置绑定上下文应该在将控件设置为EditorControl之前进行。我注意到的另一件事是,该属性当前已更改为EditorComponent,因此我相信您使用的是旧版本的Infragistics。但是,您应该仍然能够使用完全相同的方法。我已经创建了一小段代码,用代码显示了上面的内容:

代码语言:javascript
复制
public partial class Form1 : Form
{
    UltraCombo uc;
    public Form1()
    {
        InitializeComponent();
        DataTable dt = new DataTable();
        dt.Columns.Add("Int", typeof(int));
        dt.Rows.Add(1);
        dt.Rows.Add(1);
        dt.Rows.Add(1);

        DataTable dtt = new DataTable();
        dtt.Columns.Add("Int", typeof(int));
        dtt.Rows.Add(2);
        dtt.Rows.Add(2);
        dtt.Rows.Add(2);

        uc = new UltraCombo();
        uc.BindingContext = this.BindingContext;
        uc.DataSource = dtt;

        ultraGrid1.DataSource = dt.DefaultView;
    }

    private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
    {
        e.Layout.Bands[0].Columns[0].EditorComponent = uc;
    }
}

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2011-09-02 01:17:31

我使用的是Ultra下拉菜单。

dim udd As UltraDropDown

udd =新UltraDropDown

代码语言:javascript
复制
    With udd
        'add data binding or value list items here
    End With


    Me.ultragrid.DisplayLayout.Bands(0).Columns("Column Name").ValueList = udd

键是最后一行,它将ultra grid列的“值列表”分配给下拉控件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7268757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档