이것은 매우 간단한 linq이며 방금 시작했습니다. 문제를 3 개의 소스 중 하나로 추적했지만 해결 방법을 모르겠습니다. 그래서 여기에 코드가 있습니다. 그리고 나는 그 아래의 문제를 설명 할 것입니다.Linq to Sql 적절한 데이터를 제공하지 않음
XAML 바인딩 : 뒤에
<ListBox Name="lstJobs" ItemsSource="{Binding Path=Title}" DockPanel.Dock="Top"
MinWidth="150" MinHeight="200" MaxHeight="250"
ScrollViewer.VerticalScrollBarVisibility="Visible"
SelectionChanged="lstJobs_SelectionChanged" />
C# 코드 (창로드 이벤트) :
TMDataContext TMDataBase = new TMDataContext();
lstJobs.ItemsSource = from j in TMDataBase.JobDetails
select j;
결과
: 이문제 : 내가 연결을 알고 JobDtail 테이블에 3 개의 레코드 만 있기 때문에 작동합니다.
대학 때 우리는 ToString 메서드가 다른 작업을 수행하도록 과부하되어 있지 않으면 클래스 이름을 출력한다는 것을 배웠습니다. 문제는 L2S에 의해 생성 된 클래스를 수정하고 싶지 않다는 것입니다. L2S에 의해 생성 된 클래스는 자동으로 생성되기 때문에 수정 사항은 나중에 손실됩니다. 나는 이것을 변경하고 자동 생성 된 코드를 변경하는 것은 불필요하다.
L2S를 수행하기 전에 데이터베이스가 만들어졌으며 L2S 클래스와의 충돌로 인해 삭제해야했던 상속을 사용하여 모든 "엔티티"클래스가 미리 설계되었습니다. L2S 자동 생성 클래스는 저에게 아주 이상적이며 속성, 생성자를 바꾸고 메소드를 추가 할 수 있기를 바랍니다. 또는 적어도 내 이름을 바꾸거나 상속 구조를 구현할 수있는 곳에 어딘가에서 확장하십시오.
사용하는 방법은 간단합니다. UI 용 클래스 세트입니다. 비즈니스 로직을 처리하는 "Control"클래스 집합과 DB와 인터페이스 할 "Entity"클래스 집합. 하지만 전체 L2S 자동화 된 클래스 생성은 내 엔티티 클래스를 대체하여이 작업을 진행하고 있습니다.
어쨌든 첫 번째 문제는 각 레코드의 목록 상자에 작업 제목 (작업 세부 정보 테이블 한 필드 형식)을 표시하려고합니다. 목록 상자에서 선택이 변경되면 관련 레코드가 액세스되고 사용자가 해당 레코드를 편집 할 수있는 텍스트 상자를 채 웁니다.
정말 도움이 될 것입니다. 미리 감사드립니다.
'DisplayMemberPath = "Title"'을 그냥 추가하십시오. 여전히 JobDetails 객체를 바인딩해야하지만 작업 세부 객체의 Title 속성을 표시해야합니다. – thoean
감사합니다. 그리고 빠른 응답. –
물론 각 레코드에 대해 전체 JobDetail 객체 인스턴스를 가져 오거나 수화하는 것이 아니라 제목 만 투사하는 경우에는 세부 정보의 나머지 부분이 아니라 제목 만 있으면 전체 작업 공간과 성능이 향상됩니다. –