2013-06-15 30 views
5

Tôi có ứng dụng khung công tác WPF/thực thể, mô hình của tôi có sinh viên, thực thể lớp học có nhiều mối quan hệ/mối quan hệ giữa sinh viên và lớp học (sinh viên có thể có nhiều lớp học và lớp học có nhiều học sinh)Nhiều đến nhiều (Ví dụ về học sinh, lớp) Gắn kết xaml Datagrid

sinh viên [Id, Name, lớp học (tài sản Navigation)] lớp [Id, Tiêu đề, sinh viên (tài sản Navigation]

trong trường hợp này khuôn khổ thực thể không hiển thị bảng tham gia/quan hệ.

ih ave 2 DataGirds dưới dạng chi tiết chính, lưới sinh viên là chủ và lớp học là chi tiết

làm cách nào tôi có thể đặt liên kết với lớp học (chi tiết) để tôi có thể thêm và xóa lớp học cho học sinh đã chọn?

những gì tôi muốn là để chọn một sinh viên từ lưới tổng thể và thêm hoặc loại bỏ các lớp học của mình

đây là lớp học của tôi thắt lưng

<DataGrid x:Name="classesDataGrid" 
         AutoGenerateColumns="False" 
         EnableRowVirtualization="True" 
         Height="200" 
         ItemsSource="{Binding Source={StaticResource studentClassesViewSource}}" 
         RowDetailsVisibilityMode="VisibleWhenSelected" 
         Width="380"> 
       <DataGrid.Columns> 


        <DataGridComboBoxColumn Header="Class Name From Combo" 
              Width="*" 

              ItemsSource="{Binding Source={StaticResource classViewSource}}" 
              DisplayMemberPath="Name" 

              SelectedItemBinding="{Binding Students}" 

              /> 
        <!--<DataGridTextColumn x:Name="durationColumn" 
             Binding="{Binding Duration}" 
             Header="Duration" 
             Width="SizeToHeader" />--> 

       </DataGrid.Columns> 

Kịch bản này hoạt động tốt khi quan hệ là một trong nhiều nhưng tôi không thể làm cho nó có hiệu quả đối với nhiều mối quan hệ.

Thông tin thêm về bài này here

+0

H elp xin vui lòng !! Bất kỳ ai ??? –

+0

Vài năm sau, tôi cũng phải đối mặt với vấn đề này +1 – Tuco

Trả lời

0

Tôi không chắc chắn nếu tôi có vấn đề của bạn một cách chính xác: Bạn muốn biết làm thế nào để giải quyết mà thầy chi tiết ràng buộc vấn đề trong XAML?

Nếu bạn có một sinh viên với một bộ sưu tập các lớp học như một tài sản chuyển hướng bạn chỉ có thể sử dụng một lưới cho sinh viên, ví dụ:

<DataGrid x:Name="masterGrid" 
      ItemsSource="{Binding Path=Students}" /> 

và một số khác cho các chi tiết (lớp học của bạn - hoặc ngược lại, doesn 'vấn đề t): Trong trường hợp này tôi sẽ đề nghị bạn một tên phần tử ràng buộc

<DataGrid x:Name="detailsGrid" 
      DataContext="{Binding ElementName=masterGrid, Path=SelectedItem}" 
      ItemsSource="{Binding Path=Classes}" /> 

Hy vọng rằng sẽ giúp (ít nhất là trong đánh lửa ban đầu) ...

+1

xin lỗi vì trả lời muộn, vấn đề của tôi là cách thêm các mục vào lưới chi tiết ?, bài đăng này mô tả nó [link] (http://social.msdn.microsoft.com/Forums/vstudio/en-US/74ca2429-cb22-4b24-ae22-01a842b7d8c2/nhiều-to-nhiều-sinh-lớp-ví dụ-datagridcomboboxcolumn-binding-problem) –

+0

Bạn có thực sự muốn điều hướng từ Học sinh đến Lớp học và ngược lại không? Không phải là đủ để có học sinh với các lớp học (loại bỏ bộ sưu tập sinh viên từ các lớp học)? – Stefan