0

ノードに a をバインドする必要がありdropdownますUltrawintree。ユーザーがノードのセルをダブルクリックすると、編集可能になるはずなので、いくつかの値を に表示する必要がありますdropdown。ユーザーが値を選択して保存/更新できるようにします。

//コード

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim columnSet As UltraTreeColumnSet = Me.ultraTree1.ColumnSettings.ColumnSets(0)

        '   Use the ActiveCellAppearance to bring attention to the cell
        '   with the input focus
        columnSet.ActiveCellAppearance.BackColor = Color.Red
        columnSet.ActiveCellAppearance.ForeColor = Color.White

        '   Set AllowCellEdit to 'ActivateOnly' so that clicking a cell does
        '   not put in into edit mode immediately
        columnSet.AllowCellEdit = AllowCellEdit.Full

        '   Enable tooltips for cells whose value is not fully visible
        columnSet.TipStyleCell = TipStyleCell.Show
    End Sub

したがって、ここでボタンのクリックが発生すると、セルは完全に編集可能になります。dropdownしかし、その代わりに、セルにa をバインドする必要があります。それは可能ですか?

どうやってやるの?

: Infragistics バージョン12.1を使用しています

4

1 に答える 1

3

このタスクを解決するには、さまざまなアプローチがあります。UltraTree のノードの EditorComponent プロパティを使用することができます。このようにして、ドロップダウン値を表示する UltraComboEditor コントロールをノードに割り当てることができます。例えば:

this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
        this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
        this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;

        DataTable dt = new DataTable("Tabl");
        dt.Columns.Add("X", typeof(Boolean));
        dt.Columns.Add("Y", typeof(String));
        dt.Rows.Add(true, "Test A");
        dt.Rows.Add(false, "Test B");
        dt.Rows.Add(false, "Test C");
        dt.Rows.Add(true, "Test D");

        ultraCombo1.DataSource = dt;
        ultraCombo1.DisplayMember = "Y";
        ultraCombo1.ValueMember = "Y";
        this.ultraTree1.NodeLevelOverrides[0].EditorComponent = ultraCombo1;

UltraControlContainerEditor を使用している場合は、より複雑で興味深いアプローチになる可能性があります。UltraTree のノードにグリッドを実装する小さなサンプルを次に示します。例えば:

this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
        this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
        this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;


        UltraControlContainerEditor ucc = new Infragistics.Win.UltraWinEditors.UltraControlContainerEditor();
        UltraGrid uc = new UltraGrid();
        UltraGrid uc2 = new UltraGrid();

        DataTable dt = new DataTable("Tabl");
        dt.Columns.Add("X", typeof(Boolean));
        dt.Columns.Add("Y", typeof(String));
        dt.Rows.Add(true, "Test A");
        dt.Rows.Add(false, "Test B");
        dt.Rows.Add(false, "Test C");
        dt.Rows.Add(true, "Test D");

        uc2.DataSource = dt;
        uc.DataSource = dt;

        ucc.RenderingControl = uc2;
        ucc.EditingControl = uc;
        this.ultraTree1.NodeLevelOverrides[1].EditorComponent = ucc;

スクリーンショットを見て結果を確認してください

ここに画像の説明を入力

于 2013-07-10T13:09:31.987 に答える