У меня есть расширитель, содержащий представление списка. Расширитель изначально отключен и включен через некоторое время после запуска приложения.
Все прекрасно работает, если перед InitializeComponent () я заполняю ItemSource ListView (некоторую наблюдаемую коллекцию, созданную, конечно, до InitializeComponent) хотя бы одним элементом. Расширитель расширяется правильно, элементы отображаются так, как должны. Единственная проблема заключается в том, что новые элементы, которые требуют больше места для визуализации, выглядят обрезанными - я предполагаю, что это означает, что ListView не обновляется должным образом?
Однако , если я добавлю элементы в коллекцию в любое время после InitializeComponent (), расширитель только немного расширится (всего на несколько пикселей). Когда я заставляю ширину ListView иметь какое-то большое значение, расширитель расширяется, но элементы, вставленные в список, отображаются только с цветом фона, без содержимого ...
Я предполагаю, что это как-то связано с инициализацией ListView, обновлением или чем-то еще. Код следует:
XAML:
<DockPanel Name="mainPanel">
<Expander DockPanel.Dock="Right" ExpandDirection="Right" IsExpanded="False" IsEnabled="{Binding ExpanderEnabled}">
<Expander.Style>
<Style TargetType="Expander">
<Setter Property="Background" Value="#FFFF3333" />
<Style.Triggers>
<DataTrigger Binding="{Binding ExpanderEnabled}" Value="True">
<Setter Property="Background" Value="LightGreen" />
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
<Expander.Header>
<Grid Width="30" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid Width="300" Height="300" VerticalAlignment="Top" HorizontalAlignment="Left">
<TextBlock Text="Expander Name" FontSize="12" FontWeight="Bold" Margin="22,170,0,0" VerticalAlignment="Center" HorizontalAlignment="Left" RenderTransformOrigin="0,1">
<TextBlock.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-90"/>
<TranslateTransform/>
</TransformGroup>
</TextBlock.RenderTransform>
</TextBlock>
</Grid>
</Grid>
</Expander.Header>
<ListView ItemsSource="{Binding Items}" BorderBrush="LightGreen" BorderThickness="3">
<ListView.Style>
<Style TargetType="ListView">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Black"/>
</Style.Resources>
</Style>
</ListView.Style>
<ListView.View>
<GridView>
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
<GridViewColumn DisplayMemberBinding="{Binding Path=A, Converter={StaticResource aConverter}}" Width="Auto" />
<GridViewColumn DisplayMemberBinding="{Binding Path=B, Converter={StaticResource bConverter}}" Width="Auto" />
<GridViewColumn DisplayMemberBinding="{Binding Path=C, Converter={StaticResource cConverter}}" Width="Auto" />
<GridViewColumn DisplayMemberBinding="{Binding Path=D, StringFormat='\{0\} ds'}" Width="Auto" />
</GridView>
</ListView.View>
</ListView>
</Expander>
...