2014-02-19 3 views
0

BindingSource를 사용하여 내 윈도우 6.5 응용 프로그램에서 DataGrid를 바인딩했습니다. 그러나 문제는 격자가 바인딩되는 동안 열의 텍스트를 Int에서 string으로 변경하고자하는 것입니다.바인딩 할 때 값 수정 DataGrid Compact Framwork

아래 코드를 보면 값이 502 인 지정이있는 DataGrid를 바인딩하지만 대신 "SE"를 표시해야하므로 런타임에 DataGrid를 수정해야 할 필요가 있으므로 후보 객체에서 해당 값을 가져올 수 있습니다. 나는 이것을 어떻게 할 수 있는지 모른다. 도와주세요 . 감사합니다

cand.Add(new Candidate { ID = 10, Name = "Andrew", Designation  =501 ,DCode="SSE" }); 
     cand.Add(new Candidate { ID = 11, Name = "Peter", Designation = 502 , DCode="SE"}); 
     DataGridTableStyle myDataGridTableStyle = new DataGridTableStyle(); 
     myDataGridTableStyle.MappingName = "Candidate"; 
     DataGridTextBoxColumn colA = new DataGridTextBoxColumn(); 
     colA.MappingName = "Name"; 
     colA.HeaderText = "Field A"; 
     colA.Width = 50; 
     DataGridTextBoxColumn colB = new DataGridTextBoxColumn(); 
     colB.MappingName = "Designation"; 
     colB.HeaderText = "Position Holding"; 
     colB.Width = 100; 
     //dataGrid1.CurrentCell.ColumnNumber. 
     DataGridTextBoxColumn colC = new DataGridTextBoxColumn(); 
     colC.MappingName = "DCode"; 
     colC.HeaderText = "Code Position"; 
     colC.Width = 50; 

     myDataGridTableStyle.GridColumnStyles.Add(colA); 
     myDataGridTableStyle.GridColumnStyles.Add(colB); 
     myDataGridTableStyle.GridColumnStyles.Add(colC); 

     myBindingSource.DataSource = cand.ToBindingList(); 
     myDataGridTableStyle.MappingName = myBindingSource.GetListName(null); 
     dataGrid1.TableStyles.Clear(); // Recommended on MSDN in the code examples. 
     dataGrid1.TableStyles.Add(myDataGridTableStyle); 
     dataGrid1.DataSource = myBindingSource; 

답변

0

왜 당신은 귀하의 지정 속성에 DCode 속성 노예가되지 않는 :

Canidate c = new Candidate(); 
c.Designation = 501; 
print(c.DCode);//outputs "SSE" 

당신은 단지 지정의 문자열 해석을 할 때 다음 DCode에 바인딩 할 수 있습니다.