ria 및 MVVM을 사용하여 Silverlight 앱을 만들었습니다. 나는 DataGrid를 호스팅하는 ChildWindow를 만들었습니다. 이 데이터 격자는 현재 내 <Book>
테이블을로드합니다. 데이터 표를 사용자 정의하여 책 이름 만 다시 가져오고 특정 책을 선택하는 확인란 열을 추가했습니다. 사용자가 책을 여러 개 선택하려고 할 때만 나타납니다.체크 박스 열을 사용하여 테이블에 입력 할 행을 선택하는
목표는 사용자가 원하는 모든 책을 선택한 다음 저장 버튼을 누르고 책 이름과 ID를 내 책 테이블과 관계가있는 다른 테이블에 추가하는 것입니다. 책 테이블에는 책과 책 ID 목록이 들어 있으며 두 번째 표 <JM>
은 사용자가 선택한 ID와 모든 책을 보유하기로되어 있습니다. 따라서 나중에 사용자가 책을 검색하려고 할 때 책이나 여러 책 선택을 요청하면 선택한 모든 책이 반환됩니다. 쉬운 물건.
그러나 현재 여러 책을 테이블에 추가 할 수 없습니다. 선택한 항목 코드로 인해 한 권의 책만 입력됩니다. 내가 selectedItems를 모든 selectedItems를을 반환 생각했기 때문에
JobMarket jm = new JobMarket();
foreach (Book b in dataGrid1.SelectedItems)
{
dataGrid1.SelectedItems.Add(b);
jm.BookID = b.BookID;
jm.Book = b.Book1;
}
_context.JobMarkets.Add(jm);
SubmitOperation s = _context.SubmitChanges();
this.DialogResult = true;
는 나는이 방법을 시도하지만, 현재 단지 마지막으로 선택한 항목입니다. 내 체크 박스 컨트롤은 DataGrid에 중첩되어 있으므로 코드 숨김을 통해 액세스 할 수 없습니다. 나는 방법이 있다는 것을 알고 있습니다, 나는 단지 그것을하는 방법을 모른다. 나는 foreach가 반복되어 체크 박스를 찾을 것이라고 생각했지만 그렇지 않았다.
그래서이 문제를 해결하고이 클릭 이벤트에서 모든 작업을 수행 할 수있는 방법을 찾고 있습니다. 내 자신의 코드와 비슷한 코드를 사용하여 코드에서이 작업을 수행하는 쉬운 방법이 있습니까 (내 이해 수준) 여기에는 xaml 데이터 격자도 있습니다.
<sdk:DataGrid AutoGenerateColumns="False" Height="532" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" >
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="Add Book">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="chkAddBook" IsChecked="{Binding Book1, Mode=TwoWay}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Header="Book">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Book1}" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="12,3" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
"선택"이란 무엇을 의미합니까? 상자 또는 행 선택 만 선택하면됩니까? –
예. 죄송합니다. 동일한 행에있는 책에 해당하는 상자를 선택하십시오. – jcc