2009-10-23 79 views
0

我在Silverlight應用程序中有一個DataGrid,其中包含數據。我們的應用程序上還有一個按鈕,可以更改佈局,以便DataGrid更改寬度。Silverlight DataGrid單元格消失

問題是,當您處於「小」模式並滾動時,對於您無法看到的列,其DataGridCell元素的Visibility = Collapsed。現在,當您滾動時,這很好,但是當DataGrid的大小增加以顯示所有列時,它們將保持摺疊狀態。但是由於某種原因,您可以始終查看第一行中的所有單元格。

這味道像DataGrid控件中的錯誤。有沒有人知道解決它的方法?我已經爲DataGrid中的SizeChanged添加了一個處理程序,但我不確定要調用什麼來強制它顯示這些摺疊的單元格。

編輯:經過一些測試,我發現它只有GridLinesVisibility = 「水平」

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未設置。我還沒有弄清楚在這種情況下究竟發生了什麼情況。

+0

你可以嘗試將XAML提交給你的DataGrid的 - 只是以確保我沒有測試錯誤。 – thomasmartinsen 2009-10-24 07:34:58

回答

0

經過對MS別名的討論後,我發現它實際上是DataGrid中的一個錯誤。我已經向他們發送了一個repro項目,希望它能在未來得到修復。在此期間作爲一種變通方法,您可以隱藏和重新出現的一列在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; 
} 
相關問題