使用DataGridHyperlinkcolumn打开另一个窗口,并使用它将数据传递到新窗口以提取数据



我正在构建一个WPF应用程序。在这个应用程序中,我有一个具有不同列的DataGrid控件,其中一个是DataGridHyperlinkcolumn。我希望这个超链接的工作就像任何超链接将在网络世界。打开新窗口时,我需要传递行ID来提取特定于该行的数据。

我怎样才能做到这一点?我用错方法了吗?对不起,我不熟悉WPF

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

最新更新