Is it possible to create a DataGrid in WPF and have one of the columns in the DataGrid be a link/button so that when the link/button is click, this will open another window which will have information based in the ID passed by the link/button click?
I've been searching the internet for two days now but now luck.
Here is my DataGrid.
<DataGrid Name="tasksgrid" Margin="10,70,0,59" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="TASK ID" Binding="{Binding ID}"/>
<DataGridTextColumn Header="Title" Binding="{Binding TITLE}" Width="250"/>
<DataGridTextColumn Header="Resource" Binding="{Binding RESOURCE}"/>
<DataGridTextColumn Header="customer" Binding="{Binding CUSTOMER}"/>
<DataGridTextColumn Header="REQUESTED DATE" Binding="{Binding DATE_REQUESTED}"/>
<DataGridTextColumn Header="DUE DATE" Binding="{Binding DUE_DATE}"/>
<DataGridTextColumn Header="STATUS" Binding="{Binding STATUS}"/>
<DataGridTextColumn Header="application" Binding="{Binding APPLICATION}"/>
<DataGridTextColumn Header="REQUESTOR" Binding="{Binding REQUESTOR}"/>
<DataGridTextColumn Header="Customer ticket" Binding="{Binding CUSTOMER_TICKET_NUM}"/>
<DataGridTextColumn Header="PT Helpdesk #" Binding="{Binding PT_TICKET_NUM}"/>
<DataGridTextColumn Header="Vendor Ticket Number" Binding="{Binding EXTERNAL_TICKET_NUM}"/>
<DataGridTextColumn Header="DESCRIPTION" Binding="{Binding DESCRIPTION}" Width="400"/>
</DataGrid.Columns>
</DataGrid>
Here is how the DataGrid is populated.
WMSTasksDataContext objtaskDataContext = new WMSTasksDataContext();
tasksgrid.ItemsSource = (from objTasks in objtaskDataContext.WMS_TASKs
select objTasks);
So I did more digging and I found the answer.
XAML Code:
<DataGrid Name="tasksgrid" Margin="10,70,0,59" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Task ID">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<TextBlock>
<Hyperlink Click="Hyperlink_Click_1" Tag="{Binding Path=ID}">
<TextBlock Text="{Binding ID}"></TextBlock>
</Hyperlink>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="TASK ID" Binding="{Binding ID}"/>
<DataGridTextColumn Header="Title" Binding="{Binding TITLE}" Width="250"/>
<DataGridTextColumn Header="Resource" Binding="{Binding RESOURCE}"/>
<DataGridTextColumn Header="customer" Binding="{Binding CUSTOMER}"/>
<DataGridTextColumn Header="REQUESTED DATE" Binding="{Binding DATE_REQUESTED}"/>
<DataGridTextColumn Header="DUE DATE" Binding="{Binding DUE_DATE}"/>
<DataGridTextColumn Header="STATUS" Binding="{Binding STATUS}"/>
<DataGridTextColumn Header="application" Binding="{Binding APPLICATION}"/>
<DataGridTextColumn Header="REQUESTOR" Binding="{Binding REQUESTOR}"/>
<DataGridTextColumn Header="Customer ticket" Binding="{Binding CUSTOMER_TICKET_NUM}"/>
<DataGridTextColumn Header="PT Helpdesk #" Binding="{Binding PT_TICKET_NUM}"/>
<DataGridTextColumn Header="Vendor Ticket Number" Binding="{Binding EXTERNAL_TICKET_NUM}"/>
<DataGridTextColumn Header="DESCRIPTION" Binding="{Binding DESCRIPTION}" Width="400"/>
</DataGrid.Columns>
</DataGrid>
Code behind:
private void Hyperlink_Click_1(object sender, RoutedEventArgs e)
{
string taskId = ((Hyperlink)sender).Tag.ToString();
ViewTask viewTask = new ViewTask();
viewTask.TaskID.Text = taskId;
viewTask.Show();
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.