4

Infragistics の UltraGrid コントロールに問題があります。いくつかの値を含むウルトラコンボボックスを作成しました:

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

UltraGrid ができたので、ultraCombo をセルに配置して、ultracombo の項目の 1 つをセル値として選択できるようにします。コードとウルトラグリッドデザイナーの両方で試しましたが、それを行う方法が見つからないようです。

アイデアはありますか?必要に応じて、より多くの情報を提供できます

編集:

のようなものを見つけました

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

正しい方向に進んでいるように感じますが、まだ画面に表示されていません...

4

3 に答える 3

3

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];
    }
于 2011-09-01T16:35:46.197 に答える
3

以下のリンクで、DropDown を UltraGrid セルに配置するために使用できるいくつかのアプローチを見つけることができます。

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

現在のコード スニペットに戻ります。あと少しです。

最初に、UltraCombo のバインディング コンテキストを、UltraCombo が次のように使用されるフォームの BindingContext に設定する必要があります。
ultraComboPaneel.BindingContext = this.BindingContext;

コントロールを EditorControl に設定する前に、ビンギング コンテキストを設定する必要があることに注意してください。もう 1 つ気づいたことは、プロパティが現在 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;
    }
}

お役に立てれば。

于 2011-11-10T10:06:09.883 に答える
1

代わりに Ultra ドロップダウンを使用します。

dim udd As 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

キーは、ウルトラ グリッド列の「値リスト」をドロップダウン コントロールに割り当てる最後の行です。

于 2011-09-01T17:17:31.043 に答える