2013-09-02 3 views
0

데이터 격자에 해당하는 combox 상자가 있습니다. 선택한 인덱스가 변경된 함수에서 값을 선택하면 데이터 격자에이를 반영합니다.ComboBox 표시 멤버/값 멤버

문제는 : 콤보 상자는 현재 내가 원하는 것은이

  Sep 2 2013 1:54PM 
      Sep 2 2013 1:55PM 
      Sep 3 2013 1:54PM 

같은 정보를 표시합니다 : 나는 그것이 데이터 그리드와 interactes 값을 선택하면 콤보가 같은 functionalty의 예를 유지하려면,하지만 난 그것을 원하지

   Sep 2 2013 
      Sep 3 2013 etc 

누구든지 방법이 작업을 수행하는 어떤 아이디어를 가지고 : 단 콤보 예 DISTINCT 날짜가 표시됩니다 표시? 나는 C#과 wpf에 익숙하지 않다. 그래서 어떻게 할 지 모르겠다.

+0

사용 문자열 객체의 형식과 다음 형식 http://www.csharp-examples.net/string-format-datetime/ – rodolfoprado

답변

0

이렇게하려면 데이터 그리드에 바인딩하기 전에 바인딩 소스를 걸러 내야한다.

+0

그 곳이 나 작업을 수행하는 방법에 대한 팁을 다할 것입니다 멋진 봐? – user2140577

+0

데이터 그리드에 바인딩 할 대상은 무엇입니까? 목록과 데이터 테이블 모두에서 구별 할 수 있습니다. 데이터 바인딩의 원천은 무엇입니까? – Ehsan

+0

combox 데이터 소스를 DataGrid와 동일하게 설정했는데 별개의 문제가 생길 수 있습니다. 셀에 두 개의 다른 시간이있는 경우 (예 : 9.21 및 9.22) 별명을 따서 표시합니다. – user2140577

1

linq을 사용하여 데이터를 제한하고 DataGrid에 바인딩 할 수 있습니다.

당신의 데이터가 어떻게 생겼는지는 모르겠지만 그 목록이나 문자열의 배열이 이와 같은 것을 할 수 있다면.

//this gets the first 11 characters of the date, you may have to change it slightly for days that have 2 digits but this is just an example, it then makes a distinct list. 
dropdown.DataSource = data.Select(s=>s.SubString(0,11)).Distinct(); 

datagrid.DataSource = data.Where(w=> w.StartsWith(dropdown.SelectedValue)); 

그 일을 어쩌면 더 나은 방법하지만이 도움이 될 수 있습니다. 이미 사용하지 않았다면 using 문을 추가해야 할 수도 있습니다. System.Collections.Generic 및 System.Linq

나중에 다시 바인딩해야합니다.

0
DataTable dt = new DataTable(); 

      SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=testing;Userid=abc;pwd=abc"); 

      SqlCommand cmd = new SqlCommand("select ID,date from tbl_test",con); 

      con.Open(); 

      sqldatareader drw = cmd.ExecuteReader(); 

      dt.Load(drw);  

      DataRow dr = dt.NewRow(); 

      dr["id"] = "0"; 

      dr["date"] = "Select date"; 

      dt.Rows.InsertAt(dr, 0); 

      cmb_test.DataSource = dt; 

      cmb_test.DisplayMember = "date"; 

      cmb_test.ValueMember = "id"; 

      cmb_test.SelectedIndex = 0; 

      selected changed event change code: 

      sqlcommand cmd = new sqlcommand("select ID,date from tbl_test where id="+cmb_test_send.SelectedValue+",con); 

      con.Open(); 

      sqldatareader drw = cmd.ExecuteReader(); 

      dt.Load(drw); 

      sample_datagridview.DataSource=dt; `   
관련 문제