【问题标题】:Silverlight DataGrid cells disappearingSilverlight DataGrid 单元格消失
【发布时间】:2010-12-09 13:23:20
【问题描述】:

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

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

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

编辑:经过一些测试,我发现它只发生在 GridLinesVisibility="Horizo​​ntal"

XAML(单击将 DataGrid 的宽度从一半切换到全):

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

更新:尽管在未设置 GridLinesVisibilty 的情况下有时仍会发生这种情况。我还没有弄清楚这是在什么情况下发生的。

【问题讨论】:

  • 您能否尝试将 XAML 提交到您的 DataGrid - 只是为了确保我没有测试错误。

标签: c# .net silverlight datagrid


【解决方案1】:

在讨论了 MS 别名后,我发现它实际上是 DataGrid 中的一个错误。我已经向他们发送了一个复制项目,因此希望它会在未来得到修复。同时,作为一种解决方法,您可以在 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多