Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 在运行时将可单击/超链接文本添加到datagrid文本_Wpf - Fatal编程技术网

Wpf 在运行时将可单击/超链接文本添加到datagrid文本

Wpf 在运行时将可单击/超链接文本添加到datagrid文本,wpf,Wpf,我想在运行时将可单击/超链接文本添加到datagrid文本 这是我的DataGrid的XAML代码 <DataGrid Height="298" HorizontalAlignment="Left" Margin="18,273,0,0" Name="ResultDataGrid" VerticalAlignment="Top" Width="415" RowBackground="#6B8DBBD1" AlternatingRowBackground="#CAD3D3BB" Hor

我想在运行时将可单击/超链接文本添加到datagrid文本

这是我的DataGrid的XAML代码

 <DataGrid Height="298" HorizontalAlignment="Left" Margin="18,273,0,0" Name="ResultDataGrid" VerticalAlignment="Top" Width="415" 
 RowBackground="#6B8DBBD1" AlternatingRowBackground="#CAD3D3BB" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" 
 CanUserSortColumns="True" IsReadOnly="True" HeadersVisibility="Column" HorizontalGridLinesBrush="#97000000" VerticalGridLinesBrush="#97000000" />
这是我的LoadCollectionData,它将返回collection

    private List<ReviewedData> LoadCollectionData(DataTable resultData)
    {
        List<ReviewedData> result = new List<ReviewedData>();

        if (resultData != null && resultData.Rows.Count > 0)
        {
            for (var i = 0; i < resultData.Rows.Count; ++i)
            {
                result.Add( new ReviewedData()
                {
                    PROJECTNAME = resultData.Rows[i]["Name"].ToString(),
                    STATUS = resultData.Rows[i]["status"].ToString()
                });                    
            }
        }
        return result;
    }
私有列表LoadCollectionData(数据表resultData)
{
列表结果=新列表();
if(resultData!=null&&resultData.Rows.Count>0)
{
对于(变量i=0;i
如何向每个项目名称添加可单击/超链接文本,以便打开新窗口显示DataGrid中显示的每个项目的更多项目详细信息

任何建议


关于

,您应该更多地依赖数据绑定和模板,而不是在运行时修改UI。这就是WPF的本质

这种情况下,您可能需要考虑使用<代码> DATGARIDHyLink列。不要忘记关闭

AutoGenerateColumns
功能,因为您希望控制列的外观:

<DataGrid AutoGenerateColumns="False"
         .... >
    <DataGrid.Columns>
        <DataGridHyperlinkColumn Binding="{Binding PROJECTNAME}" Header="Name">
            <DataGridHyperlinkColumn.ElementStyle>
                <Style>
                    <EventSetter Event="Hyperlink.Click" Handler="Hyperlink_Click"/>
                </Style>
            </DataGridHyperlinkColumn.ElementStyle>
        </DataGridHyperlinkColumn>
        <DataGridTextColumn Binding="{Binding STATUS}" Header="Status"/>
    </DataGrid.Columns>
</DataGrid>      
<DataGrid AutoGenerateColumns="False"
         .... >
    <DataGrid.Columns>
        <DataGridHyperlinkColumn Binding="{Binding PROJECTNAME}" Header="Name">
            <DataGridHyperlinkColumn.ElementStyle>
                <Style>
                    <EventSetter Event="Hyperlink.Click" Handler="Hyperlink_Click"/>
                </Style>
            </DataGridHyperlinkColumn.ElementStyle>
        </DataGridHyperlinkColumn>
        <DataGridTextColumn Binding="{Binding STATUS}" Header="Status"/>
    </DataGrid.Columns>
</DataGrid>      
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
    Hyperlink link = (Hyperlink)e.OriginalSource;
    //Do something useful instead of just showing the hyperlink text in message box :
    MessageBox.Show(link.NavigateUri.ToString());
}