2011-11-04 2 views
1

DataTable (dt)에 두 개의 열을 DataGrid에 표시하려고합니다. 그리고 각 행에 섹터를 할당 할 수 있도록 comboxcolumn 인 다른 열을 추가하십시오. 문제는 콤보 박스를 동적으로 업데이트 할 수 없다는 것입니다. 내가 다른 것을 클릭하면 선택이 사라집니다. 이 문제를 해결할 방법이 있습니까?어떻게 datagrid에서 comboxboxcolumn의 선택 항목을 동적으로 업데이트합니까?

dg_display.DataContext = dt.DefaultView; 
    dg_display.Columns[0].Header = "Symbol"; 
    dg_display.Columns[1].Header = "Company name";   
    DataGridComboBoxColumn columnComboBox = new DataGridComboBoxColumn(); 
    string[] sectorarray = new[] 
            { 
             "Consumer Discretionary", "Consumer  Staples", "Energy", "Financial", 
             "Financials", "Health Care", "Industrials", "Information Technology", 
             "Materials", "Other", "Technology","Telecommunication Services", "Utilities" 
            }; 
     columnComboBox.ItemsSource = sectorarray; 
     columnComboBox.IsReadOnly = false; 
        dg_display.Columns.Add(columnComboBox); 
     dg_display.Columns[2].Header = "Sector"; 

답변

0

당신은 콤보 상자에

설정 중 하나 SelectedItemBinding 또는 SelectedValueBinding

+0

고마워요을 SelectedItem 바인딩하지있어! 하지만 어떻게 이러한 comboxes 선택 reult 바인딩을 datatable 열 및 combox있는 옵션의 원본 배열의 문자열 수 (및 배열 고정 된)? –

+0

@ JoshuaHu 잘 모르겠습니다. 'ItemsSource'는 ComboBox의 항목이고'SelectedItem' 또는 'SelectedValue'는 선택된 항목입니다. – Rachel

0

이 같은 시도 할 수 ....

DataGridComboBoxColumn col = new DataGridComboBoxColumn(); 
     col.Header = "Name"; 
     col.DisplayMemberPath = "Name"; 
     col.SelectedValueBinding = new Binding("Name"); 
     col.ItemsSource = simacc; 
     col.TextBinding = new Binding("Name"); 
     col.CanUserSort = false; 
     dataGrid1.Columns.Add(col); 
+0

고마워요! 하지만 어떻게 이러한 comboxes 선택 reult 바인딩을 datatable 열 및 combox있는 옵션의 원본 배열의 문자열 수 (및 배열 고정 된)? –