2011-07-27 124 views
1

我已阅读了几篇文章,但我仍然有点困惑。我怎样才能让每一行的第一列成为一个超链接。我有一个数字字段,该数字附加到一个URL拉起了这个项目的页面。我只想在填充数据网格时动态创建按钮。SilverLight Datagrid中的超链接按钮

回答

2

我在Telerik RadGridView中这样做,但我认为可以在常规DataGrid上使用它。 创建包含列一个DataTemplate:

var dataTemplate = @"<DataTemplate xmlns=""http://schemas.microsoft.com/client/2007"" xmlns:NimbusControls=""http://schemas.nectar.inf.br/2010/xaml""> 
            <Border Background=""Transparent""> 
             <StackPanel Orientation=""Horizontal"" 
                HorizontalAlignment=""Center""> 
              <Button Command=""{Binding EditCommand}"" CommandParameter=""{Binding}"" /> 
              <Button Style=""{StaticResource GridDeleteButtonStyle}"" /> 
             </StackPanel> 
            </Border> 
           </DataTemplate>"; 

然后将其添加到网格,在Telerik的我做了以下的方法:

nimbusDataGrid.Columns.Add(new GridViewColumn 
    { 
     CellTemplate = (DataTemplate)XamlReader.Load(dataTemplate) 
    }); 

但我认为这是很容易在DataGrid中重现。

另一种途径是在作为ItemsSource使用的对象中创建命令,并为其生成一个用于生成Hyperlink列的模板。

希望它有帮助。

+0

该代码在哪里是实际的超链接被创建? –

+0

不起作用 –

+0

我没有创建超链接,它只是它如何完成的一个示例。如果你替换了Button for HyperlinkBut​​ton,它应该创建它。代码使用显示的模板在DataGrid中创建一个新列。 –