2012-10-01 2 views
0

프로그램 목록이 시작될 때마다 호출되는 refreshInterface라는 목록 상자에 항목을 추가하는 메서드가 있습니다.이 메서드는 FormItems 클래스를 사용하여 목록 상자에 homeforms의 이름을 추가합니다. rereshInterface내 목록 상자의 항목을 새로 고침하는 방법

public void refreshInterface() 
    { 
     //int number = 0; 
     foreach (DataSet1.xspGetAnalysisUsageTypesRow homeForms in myDataSet.xspGetAnalysisUsageTypes) 
     { 
      var forms = new FormItems(homeForms); 
      listBox1.Items.Add(forms); 
     } 
    } 

FormItems 클래스 아래 방법

public class FormItems 
{ 
    public DataSet1.xspGetAnalysisUsageTypesRow types { get; set; } 

    public FormItems(DataSet1.xspGetAnalysisUsageTypesRow usageTypes) 
    { 
     types = usageTypes; 
    } 

    public override string ToString() 
    { 
     // returns the rows that are relating to types.xlib_ID 
     var libtyps = types.GetxAnalysisUsageRows(); 
     var cnt = 0; 

     foreach (DataSet1.xAnalysisUsageRow ty in libtyps) 
     { 
      //returns true if ty is null 
      bool typeNull = ty.Isxanu_DefaultNull(); 

      // if its false, if xanu_Default is set 
      if (!typeNull) 
      { 
       cnt += 1; 
      } 
     } 

     var ret = String.Format("set {0} [Set: {1}]", types.xlib_Desc, cnt); 

     //return this.types.xlib_Desc; 

     return ret; 
    } 
} 

아래의 각리스트 박스 (리스트 박스가 homeform의 좌측에있는) 항목에 대한 그래서, 첨가 될 수 보고서 번호가 이쪽 예를 들어, 내 목록 상자에서 homeform을 선택하면 ri에 12 개의 텍스트 상자가 있습니다. ght 손 사이드와 각 텍스트 상자에는 찾아보기 및 지우기 버튼이 있습니다. 찾아보기 버튼을 클릭하면 새 양식이 나타나고 해당 양식의 보고서를 선택하여 특정 텍스트 상자에 추가하면 그 집 양식의 집계가 업데이트되고 특정 집에 대한 텍스트 상자를 지우고 집계해야합니다 최신 정보.

현재 응용 프로그램을 디버깅 할 때 homeform에 추가되는 보고서의 양에 따라 각 Homeform의 수가 표시되지만 programe이 실행되는 동안 homeform에 새 보고서를 추가하면 디버그 세션을 다시 시작할 때까지 카운트가 업데이트되지 않습니다. 데이터 바인딩 방법을 사용하는 방법에 대해 들었지만 여기에서 사용할 수있는 방법이 확실하지 않습니다.

내 목록 상자 항목을 업데이트하려면 어떻게해야합니까?

답변

0

목록 상자 구성 요소 원본을 Observable Collection에 바인딩해야 Observable Collection에 대한 모든 업데이트로 목록 상자 데이터가 업데이트됩니다.

+0

여기 알고리즘은 무엇입니까? 내가 묻는 이유는 전에 bindin을 사용하지 않았기 때문이다. –

+0

은 XML 또는 프로그래밍을 사용하는지에 달려있다 ... 세부 사항을위한 연구 네트, 많은 것들이있다. –

0
Might not be exact but should give you an idea. 

public void refreshInterface() 
{ 
    Dictionary<int,string> items = new Dictionary<int,string>(); 

    //int number = 0; 
    foreach (DataSet1.xspGetAnalysisUsageTypesRow homeForms in myDataSet.xspGetAnalysisUsageTypes) 
    { 
     var formitem = new FormItems(homeForms); 
     items.Add(formitem.someprop, formitem.toString()); 

    } 
    listbox.DataSource = items; 
    listbox.DisplayMember = "Value"; 
    listbox.ValueMember = "Key"; 
} 
관련 문제