SeveralotherquestionsonSO中跳來跳去都得出了同樣的結論,我有 - 用ItemsControl
有DataTemplate
每個項目構造位置等項目它們類似於網格比使用ListView
更簡單(尤其是格式化)。WPF - 如何停止一個ItemsControl僞網格的行從舞蹈/佈局
代碼類似於:
<StackPanel Grid.IsSharedSizeScope="True">
<!-- Header -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column1" />
<ColumnDefinition Width="Auto" SharedSizeGroup="Column2" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Column Header 1" />
<TextBlock Grid.Column="1" Text="Column Header 2" />
</Grid>
<!-- Items -->
<ItemsControl ItemsSource="{Binding Path=Values, Mode=OneWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column1" />
<ColumnDefinition Width="Auto" SharedSizeGroup="Column2" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding ColumnProperty1}" />
<TextBlock Grid.Column="1" Text="{Binding ColumnProperty2}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
我看到的問題是,每當我換到了ItemsSource
被綁定的對象(它是一個ObservableCollection
我更換參考,而不是明確的和再 - 添加),整個「網格」跳舞幾秒鐘。
想必它會進行一些佈局傳遞以獲得所有Auto
-width列的匹配。
這對我的用戶來說非常干擾,我想把它整理出來。有沒有人看過這個?
我有完全相同的問題。你有沒有得到這個決議? – 2011-01-19 00:06:36
@瑞克:不幸的是,我從來沒有研究過這裏發生了什麼。這太讓人討厭了,我只是選擇了固定寬度的列,儘管當然有不同的問題。就我而言,這是一個較小的罪惡。 – 2011-01-19 12:25:32
@Rick,你在WinForms裏面託管?爲此得到一個repro案例會很好。你使用的是什麼版本的.NET?我使用3.5(SP1之前)。 – 2011-01-19 12:26:36