WPF DataGridis lingi kuvamine ei ole nii lihtne kui see võiks olla. Minu suureks imestuseks ei avane DataGridHyperlinkColumn‘l klikkides midagi.
Minu leitud lahendus sellele probleemile on toodud allpool.

Näide 1

<DataGrid Name="dG">
    <DataGrid.Columns>
        <DataGridHyperlinkColumn Header="Link" Binding="{Binding Link}">
            <DataGridHyperlinkColumn.ElementStyle>
                <Style TargetType="TextBlock">
                    <EventSetter Event="Hyperlink.RequestNavigate" Handler="Request"/>
                </Style>
             </DataGridHyperlinkColumn.ElementStyle>
        </DataGridHyperlinkColumn>
         ....
   <DataGrid.Columns>
</DataGrid>

Nagu näha tuleb DataGridHyperlinkColumn veerule lisada Style elemendi EventSetter‘i abil Hyperlink.RequestNavigate sündmus(Näide1 rida 06) ning selle kuular(Näide1 rida 07), et saaksime koodis käivitada protsessi(Näide 2, rida4), mis avaks lingi.

Näide 2

    ...
    private void Request(object sender, RequestNavigateEventArgs e)
    {
       Process.Start(new ProcessStartInfo(e.Uri.OriginalString));
    }
    ...

Process.Start() meetod selgitab ise välja millega antud linki avada. Veebiaadressi korral avatakse vaikebrauser, .xls faili puhul Excel.

Advertisements