2

次のコードを使用して、wpf の xceed グリッドにハイパーリンク列を作成しています。データテーブルを xceed グリッドにバインドすると、値はバインドされますが、ハイパーリンクは作成されません。私を助けてください。

<DataTemplate x:Key="ButtonTemplate">
        <TextBlock>
        <Hyperlink Click="Hyperlink_Click">
            <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=.}"/>
         <TextBlock Text="{Binding RelativeSource={RelativeSource   
             AncestorType= {x:Type xcdg:DataRow}},Path=DataContext.[Documents]}"/>
                </StackPanel>
        </Hyperlink>
    </TextBlock>
    </DataTemplate>
4

1 に答える 1

3
<xcdg:Column FieldName="ColumnTest" Title="Test">
                    <xcdg:Column.CellContentTemplate>
                        <DataTemplate>
                            <TextBlock>
                                <Hyperlink RequestNavigate="Hyperlink_RequestNavigate" NavigateUri="{Binding .}">
                                    <TextBlock Text="{Binding .}" />
                                </Hyperlink>
                            </TextBlock>
                        </DataTemplate>

                    </xcdg:Column.CellContentTemplate>
                </xcdg:Column>

ハイパーリンクがクリックされたときにリクエストを送信できるように、RequestNavigate イベント ハンドラを追加する必要があります。これにより、デフォルトのブラウザーが開き、ページに直接移動します。

イベント ハンドラのコードは次のとおりです。

private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
        {
            Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));

            e.Handled = true;
        }
于 2011-10-24T20:38:16.070 に答える