2016-08-17 3 views
0

DataGridをWPFで作成し、DataGridの列の1つをリンク/ボタンにすると、リンク/ボタンをクリックすると、渡されたIDに基づいて情報を持つ別のウィンドウが開きますリンク/ボタンをクリックしますか?WPFのDataGridで別のウィンドウを開くリンク/ボタンを作成するにはどうすればいいですか?

私は2日間インターネットを検索していましたが、今は運がいいです。

ここは私の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> 

DataGridにデータがどのように埋め込まれます。

WMSTasksDataContext objtaskDataContext = new WMSTasksDataContext(); 

     tasksgrid.ItemsSource = (from objTasks in objtaskDataContext.WMS_TASKs 
           select objTasks); 

答えて

0

私はもっと掘り下げて答えを見つけました。

XAMLコード:背後

 <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> 

コード:

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(); 
} 
関連する問題