2014-05-19 3 views
0

현재 서식의 텍스트로 필터링 목록을 필터링하고 싶습니다. 나는 Tasks 목록을 가지고 있는데, DataGrid에 Username 속성 값이 My Form의 텍스트와 동일한 작업 만 표시하려고합니다.현재 서식의 텍스트 얻기

나는이 시도했다 : 내 양식의 텍스트는 "사용자 1"인 경우, 예를 들어

foreach (Task a in tasks) 
     { 
      if(a.Username == ProgForm.ActiveForm.Text) 
      tdt.Rows.Add(a.Id, a.Name, a.Description, a.IsSolved, a.IsTested, a.Username); 

     } 

, 내 데이터 그리드는 사용자 이름 "USER1"만 작업을 표시합니다.

나는 코드

if(a.Username == ProgForm.ActiveForm.Text) 

DataGrid는이 모든 작업을 표시합니다이 라인을 주석, 그래서 문제가 없다합니다. 필터링하는 법을 모르겠습니다.

감사합니다.

편집 :

찾을 해결책 :

이 교체 :

if(a.Username == this.Text) 
+0

두 값에 대한 디버거에 나타나는 내용은 무엇입니까? 현재 양식의 "텍스트"는 무엇입니까? – BradleyDotNET

+0

a. 사용자 이름은 "user1"이지만 ProgForm.ActiveForm은 null입니다. 현재 양식에서 텍스트를 가져 오는 방법을 모르겠습니다. – dsanatomy

답변

2

이 시도 :

tasks 
    .Where(a => a.Username == this.Text) 
    .ForEach(a => 
     tdt.Rows.Add(a.Id, a.Name, a.Description, a.IsSolved, a.IsTested, a.Username) 
    ); 
이와

if(a.Username == ProgForm.ActiveForm.Text) 

+0

이것은 ActiveForm이 null 인 이유에 관한 질문과는 관련이 없다는 점을 제외하면 작동합니다. – BradleyDotNET

+0

@BradleyDotNET 예, 해당 댓글을 보았습니다. – DavidG

+0

큰 따옴표 사이에 실제 값을 넣으면 필터링이 올바르게 수행됩니다. ActiveForm을 사용하는 것이 올바른 방법인지 잘 모르겠습니다. – dsanatomy