2016-08-17 58 views
0

我正在構建一個WPF應用程序。在這個應用程序中,我有一個帶有不同列的DataGrid控件,其中一個是DataGridHyperlink列。我希望這個超鏈接能夠像Web世界中的任何超鏈接一樣工作。當打開新窗口時,我需要傳遞行ID來提取特定於該行的數據。使用DataGridHyperlinkcolumn打開另一個窗口並使用它將數據傳遞到新窗口來提取數據

我該如何做到這一點?我在這裏採取了錯誤的做法嗎?對不起,我是WPF的新手。

回答

1
<Window x:Class="WpfApplication1.Window2" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Window2" Height="300" Width="300"> 
    <Grid> 
     <DataGrid AutoGenerateColumns="False" Margin="10,10,12,12" Name="dataGrid1" ItemsSource="{Binding}"> 
      <DataGrid.Columns> 
       <DataGridHyperlinkColumn Header="Header" Binding="{Binding link}" ContentBinding="{Binding content}"> 
        <DataGridHyperlinkColumn.ElementStyle> 
         <Style TargetType="TextBlock"> 
          <EventSetter Event="Hyperlink.Click" Handler="EventSetter_OnHandler" /> 
         </Style> 
        </DataGridHyperlinkColumn.ElementStyle> 
       </DataGridHyperlinkColumn> 
      </DataGrid.Columns> 
     </DataGrid> 
    </Grid> 
</Window> 
public partial class Window2 : Window 
    { 

     class Data 
     { 
      public string link { get; set; } 
      public string content { get; set; } 
     } 

     public Window2() 
     { 
      InitializeComponent(); 
      dataGrid1.DataContext = new object[] { new Data { link = "window2?id=3", content = "window2" } }; 
     } 

     void EventSetter_OnHandler(object sender, RoutedEventArgs e) 
     { 
      var rowData = ((Hyperlink)e.OriginalSource).DataContext as Data ; 
      // resolve the link ... 
     } 

    } 
+0

@jorame您可以輕鬆地測試此代碼 – codeDom

相關問題