代码之家  ›  专栏  ›  技术社区  ›  RandomEngy

Silverlight数据网格单元正在消失

  •  0
  • RandomEngy  · 技术社区  · 15 年前

    我在Silverlight应用程序中有一个DataGrid,其中包含数据。我们的应用程序上还有一个按钮,可以改变布局,使DataGrid改变宽度。

    问题是,当您处于“小”模式并四处滚动时,对于看不到的列,其DataGridCell元素的可见性=折叠。现在,当您四处滚动时,这很好,但是当DataGrid的大小增加以显示所有列时,它们保持折叠状态。但是,由于某些原因,您始终可以看到第一行中的所有单元格。

    这闻起来像DataGrid控件中的错误。有人知道解决这个问题的方法吗?我已经为DataGrid上的SizeChanged添加了一个处理程序,但我不太确定要调用什么来强制它显示那些折叠的单元格。

    编辑:经过一些测试,我发现它只在GridLinesVisibility=“Horizontal”时发生

    <StackPanel Orientation="Vertical">
        <data:DataGrid x:Name="testDataGrid" GridLinesVisibility="Horizontal" />
        <Button HorizontalAlignment="Center" Content="Switch Width" Name="switchWidthButton" Click="Button_Click" />
    </StackPanel>
    

    更新:尽管有时它仍然会发生在 GridLinesVisibilty

    1 回复  |  直到 15 年前
        1
  •  0
  •   RandomEngy    15 年前

    在讨论了MS别名之后,我发现它实际上是DataGrid中的一个bug。我已经给他们发送了一个复制项目,所以希望它能在将来得到修复。同时,作为一种解决方法,您可以在DataGrid更改大小时隐藏并重新显示其中一列:

    <data:DataGrid x:Name="testDataGrid" GridLinesVisibility="Horizontal" Width="150" SizeChanged="testDataGrid_SizeChanged" />
    

    private void testDataGrid_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        this.testDataGrid.Columns[0].Visibility = Visibility.Collapsed;
        this.testDataGrid.Columns[0].Visibility = Visibility.Visible;
    }