2009-04-14 4 views
1

예전 (예 : 지난 달)에 데이터 서식에 내 winforms 표를 바인딩하고 꺼내 실행했습니다. 기본적으로 그리드 내용은 업데이트 될 수 있습니다. (엑셀 스프레드 시트와 유사)Winforms (.net)에서 Linq 데이터 소스에 바인딩 눈금

그러나 Linq 데이터 소스 (SQL에 Linq 또는 Entity에 Linq)에 표를 바인딩하면 winforms 표가 읽기 전용 모드로 잠 깁니다. 업데이트 모드를 활성화하려면 어떻게해야합니까?

+0

내 대답을 삭제했습니다. DGV에서 주변을 파고 들었습니까? ILIST와 IListSource 구현을 다른 것과 다르게 처리하는 것처럼 보입니다. 이것들은 갱신 가능하고 다른 것들은 그렇지 않은 PropertyManagers에 들어가는 CurrencyManagers에 들어갑니다. ToList()가 실패하는 이유는 무엇입니까? 행운을 빕니다. – Will

답변

0

해결책을 찾았습니다. λ 식을 사용하여 엔티티를 필터링하고 엔티티에 직접 바인딩합니다.

1

아마도 투영에서 익명 형식을 사용하고 있습니까? 즉

select new {Foo = order.Foo, Bar = custmoer.Bar}; 

(또는 이와 비슷한) - C#의 익명 형식은 변경 불가능하므로 예 : 읽기 전용으로 보입니다. 그러나 일반 클래스 (LINQ 생성 클래스 또는 사용자 소유 클래스)는 편집 가능해야합니다. 기억해야 할 점은 IEnumerable<T>/IQueryable<T> 개체를 지정하는 대신 모든 쿼리에 .ToList()을 호출하는 것입니다.

1

'더 나은'바인딩을위한 다양한 클래스의 GetNewBindingList 메소드를보십시오.

그리고 끝나면 SubmitChanges으로 전화하십시오.