【问题标题】:Setting Display position of column in DataGrid设置 DataGrid 中列的显示位置
【发布时间】:2016-01-13 08:28:15
【问题描述】:

我正在后面的代码中生成一个超链接按钮。问题是尽管将属性设置为DisplayIndex=4,但该列首先出现在数据网格中,该列首先出现,然后是其余的列。如何修复此列的顺序?

XAML 代码

<sdk:DataGrid AutoGenerateColumns="True" HorizontalAlignment="Left" Height="163" VerticalAlignment="Top" Width="380" Margin="10,59,0,0" Grid.Row="2" Grid.Column="1" Name="ProductGrid"  Visibility="Collapsed">
        <sdk:DataGrid.Columns>
            <sdk:DataGridTemplateColumn Header="Hyperlink">
                <sdk:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate x:Name="gridTemplate">

                         <StackPanel Orientation="Vertical" VerticalAlignment="Center"  >
                        <HyperlinkButton Content="Hyperlinkbutton" Tag="Hyperlinkbutton" HorizontalAlignment="Center" />
                        </StackPanel>
                    </DataTemplate>
                </sdk:DataGridTemplateColumn.CellTemplate>
            </sdk:DataGridTemplateColumn>
        </sdk:DataGrid.Columns>
</sdk:DataGrid>

背后的代码

private void ProductGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
  DataGridTemplateColumn templateColumn = new DataGridTemplateColumn();
  templateColumn.DisplayIndex = 4;
  templateColumn.CellTemplate = (DataTemplate)Resources["gridTemplate"];
  ProductGrid.Columns.Add(templateColumn);      
}

【问题讨论】:

  • 为什么在代码中而不是在标记中设置DisplayIndex
  • 如何在标记中设置?
  • 如果我尝试在标记中设置它,我会收到错误The property DisplayIndex was not found on HyperlinkButton
  • 您希望列出现在索引号 4...MSDN link to documentation
  • 我将属性添加到&lt;sdk:DataGridTemplateColumn Header="Hyperlink" DisplayIndex="4"&gt;,但得到了一个非常奇怪的错误DisplayIndex must be greater than or equal to 0 and less than 1

标签: c# silverlight datagrid


【解决方案1】:

设置现有列的DisplayIndex 会改变其位置,而不是添加新列?

<sdk:DataGridTemplateColumn x:Key="HyperlinkColumn" Header="Hyperlink">

和代码

private void ProductGrid_AutoGeneratingColumn(object sender,
    DataGridAutoGeneratingColumnEventArgs e)
{
    var column = (DataGridColumn) Resources["HyperlinkColumn"];
    column.DisplayIndex = 4;
}

【讨论】:

    猜你喜欢
    • 2015-05-05
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多