var Qselect = (from w in db.Workshops join wt in db.WorkshopTypes on w.WorkshopTypeId equals wt.WorkshopTypeId join tt in db.TransferTypes on w.WorkshopTransfer equals tt.TransferTypeId where w.WorkshopDate.Contains("1395/05/01") orderby w.WorkshopDate select new { WorkshopId = w.WorkshopId, WorkshopDate = w.WorkshopDate, WorkshopTypeId = wt.WorkshopTypeName, WorkshopDetails = w.WorkshopDetails, FusionId = w.FusionId, WorkshopTransfer = tt.TransferTypeName, WorkshopWeight = w.WorkshopWeight }).Take(10); grdWorkshop.ItemsSource = Qselect.ToList();
<DataGrid x:Name="grdWorkshop" AutoGenerateColumns="False" > <DataGrid.Columns> <DataGridTextColumn Header="id" Width="50" Binding="{Binding WorkshopId}" /> <DataGridTextColumn Header="Date" Width="140" Binding="{Binding WorkshopDate }"/> <DataGridTextColumn Header="Type" Width="110" Binding="{Binding WorkshopTypeId }"/> <DataGridTextColumn Header="Detail" Width="220" Binding="{Binding WorkshopDetails }"/> <DataGridTextColumn Header="Series" Width="80" Binding="{Binding FusionId }"/> <DataGridTextColumn Header="Transfer" Width="130" Binding="{Binding WorkshopTransfer }"/> <DataGridTextColumn Header="Weight" Width="100" Binding="{Binding WorkshopWeight }"/> </DataGrid.Columns> <DataGrid.ContextMenu> <ContextMenu > <MenuItem Header="Add" Click="AddWorkshopItem" /> <MenuItem Header="Edit" Click="EditWorkshopItem" /> <MenuItem Header="Delete" Click="DeleteWorkshopItem" /> </ContextMenu> </DataGrid.ContextMenu> </DataGrid>
int id = (grdWorkshop.SelectedItem as Workshop).WorkshopId;
لیستی که داخل گرید پر کردید رو لیستی از یک کلاس بسازید :
List<MyWorkshops> Qselect = (from w in db.Workshops join wt in db.WorkshopTypes on w.WorkshopTypeId equals wt.WorkshopTypeId join tt in db.TransferTypes on w.WorkshopTransfer equals tt.TransferTypeId where w.WorkshopDate.Contains("1395/05/01") orderby w.WorkshopDate select new MyWorkshops { WorkshopId = w.WorkshopId, WorkshopDate = w.WorkshopDate, WorkshopTypeId = wt.WorkshopTypeName, WorkshopDetails = w.WorkshopDetails, FusionId = w.FusionId, WorkshopTransfer = tt.TransferTypeName, WorkshopWeight = w.WorkshopWeight }).Take(10); grdWorkshop.ItemsSource = Qselect.ToList();
و سپس برای بدست آوردن ردیف انتخاب شده گرید SelectedItem را به کلاس MyWorkshops تبدیل کنید و ID را بدست بیاورید :
int id = (grdWorkshop.SelectedItem as MyWorkshops).WorkshopId;
خیلی ممنون. من یه کلاس مشابه نوع دیتا گریدم ساختم و هنگام سلکت new کردم مانند مثال شما و کاملا کارم درست شد. با تشکر از شما
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)