2011-09-01 5 views
4

Infragistics의 UltraGrid 컨트롤에 문제가 있습니다. 나는 거기에 몇 가지 값으로 ultracombobox을 만들었습니다Infragistics Ultragrid - Combobox with column

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; 

같은 것을 발견

...

답변

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

내가 대신 울트라 드롭 다운을 사용

다음은 시작하는 몇 가지 코드입니다.

희미한 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 

키로 드롭 다운 컨트롤에 매우 그리드 컬럼의 "값 목록"에 할당 마지막 줄입니다.

3

당신은 당신이 UltraGrid 셀에 드롭 다운을 넣어 사용할 수있는 몇 가지 방법 아래 링크에서 찾을 수있다 :

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

현재 코드로 돌아 간다 - 당신은 거의 다 있습니다


ultraComboPaneel.BindingContext = this.BindingContext;

:

먼저 폼의 BindingContext를에 UltraCombo의 바인딩 컨텍스트를 설정해야합니다 당신의 UltraCombo처럼 사용됩니다

binging 컨텍스트 설정은 컨트롤을 EditorControl로 설정하기 전에 수행해야합니다. 한가지 더 알아야 할 것은 속성이 현재 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; 
    } 
} 

희망 사항.