2016-08-17 69 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

相关问题