2011-01-05 19 views
2

Ich verwende datagrid Tabelle auf meinem Projekt. Eine der Spalten der datagrid ist der Pfad des Dokuments nach meinem Projekt. Ich möchte, das tun:wpf datagrid auf klicken Ereignis

Wenn der Benutzer den Pfad Zelle/Hyperlink-Zelle klickt,

  • Programm den Weg bekommen,
  • Programm wird eine andere Registerkarte öffnen.

Ich konnte das Ereignis onclick für die Spalte nicht sehen, wie kann ich das tun? Und wie kann ich die Tabitems im selben wpf-Fenster wechseln?

Hyper-Link Spalte ist, dass:

<toolkit:DataGridHyperlinkColumn Header="Path" Binding="{Binding path}" IsReadOnly="True" TargetName="{Binding Path=path}"> 
</toolkit:DataGridHyperlinkColumn > 
+0

Es gibt kein OnClick-Ereignis, aber es gibt MouseDown-, MouseUp, Mouseleftbuttondown, MouseLeftButtonUp, Mouse, MouseRightButtonUp und die Vorschau-Versionen oben genannten Ereignisse. Ich würde vorschlagen, eines der MouseUp-Ereignisse zu verwenden, um das OnClick-Ereignis zu ersetzen. –

Antwort

0

Haben Sie versucht, Trigger verwenden?

Sie einen Trigger für das Mouseclick-Ereignis definieren könnte und dort setzen die andere Registerkarte Fokus

0

Sie können versuchen, eine DataGridTemplateColumn mit, in dem Sie einen Textblock und Hyperlink platzieren. Dadurch wird ein Click-Ereignis bereitgestellt. Hier ist ein Beispiel für die Definition einer Hyperlink-Spalte:

<dg:DataGridTemplateColumn Header="Link Column" Width="125"> 
    <dg:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock Margin="0,0,0,0"> 
       <Hyperlink Tag="{Binding TargetUrl}" Click="Url_Click"> 
        <InlineUIContainer> 
         <TextBlock Text="{Binding TargetText}"/> 
        </InlineUIContainer> 
       </Hyperlink> 
      </TextBlock> 
     </DataTemplate> 
    </dg:DataGridTemplateColumn.CellTemplate> 
</dg:DataGridTemplateColumn> 

Beachten Sie, dass diese aus einem Projekt wurde mit .NET 3.5 und WPF Toolkit. dg ist in der XAML definiert mit xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"