簡體   English   中英

Infragistics Ultragrid - Combobox作為專欄

[英]Infragistics Ultragrid - Combobox as column

我對Infragistics的UltraGrid控件有疑問。 我創建了一個帶有一些值的ultracombobox:

 UltraCombo ultraComboPaneel = new UltraCombo();
        ultraComboPaneel.DataSource = articleList;
        ultraComboPaneel.ValueMember = "ArticleID";
        ultraComboPaneel.DisplayMember = "Name";

現在我有一個UltraGrid,我想將ultraCombo放在一個單元格中,這樣我就可以選擇ultracombo中的一個項目作為單元格值。 我在代碼和超網格設計器中都嘗試過,但我似乎找不到辦法。

你們中有人有個主意嗎? 如果需要,可以提供更多信息

編輯:

我發現了類似的東西

UltraGridColumn ugc = ultraGridTypePaneel.DisplayLayout.Bands[0].Columns.Add("combo");
ultraGridTypePaneel.DisplayLayout.Bands[0].Columns["combo"].EditorControl = ultraComboPaneel;

我覺得我的方式正確,但屏幕上還沒有顯示...

UltraCombo提供了大量功能。 如果您只需要從列表中選擇項目,您可能會發現網格的ValueLists提供了更好的解決方案。

這里有一些代碼可以幫助您入門:

    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];
    }

您可以在下面的鏈接中找到一些可用於將DropDown放入UltraGrid單元格的方法:

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

回到你當前的代碼片段 - 你幾乎就在那里:

首先,您應該將UltraCombo的綁定上下文設置為UltraCombo將使用的表單的BindingContext,如:
ultraComboPaneel.BindingContext = this.BindingContext;

請注意,在將控件設置為EditorControl之前,應該設置binging上下文。 我注意到的另一件事是該屬性當前已更改為EditorComponent,因此我相信您使用的是舊版本的Infragistics組件。 但是,您仍然可以使用相同的方法。 我創建了一個小代碼片段,顯示上面的代碼:

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;
    }
}

希望這可以幫助。

我使用的是Ultra Dropdown。

dim udd作為UltraDropDown

udd =新的UltraDropDown

    With udd
        'add data binding or value list items here
    End With


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

關鍵是將超網格列的“值列表”分配給下拉控件的最后一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM