Когда я раскрываю Expander в приведенном ниже коде, приложение становится очень вялым и занимает 2-3 секунды, чтобы ответить на события изменения размера / перемещения, инициированные пользователем. Если я установлю для второго столбца значение <ColumnDefinition Width="250"/>
, время отклика останется оптимальным. Что мне здесь не хватает? (Мне нужен пользовательский интерфейс, как показано ниже, но без вялости)
<UserControl>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Toolbar .. />
<DataGrid Grid.Row="1" ItemsSource="{Binding collection1}" .. />
<Expander Grid.Column="1" Grid.RowSpan="2">
<DataGrid ItemsSource="{Binding collection2}" .. />
</Expander>
</Grid>
</UserControl>
К вашему сведению: я подозреваю, что виртуализация строк не используется, если задано значение Width = Auto и объекты DataGridRow создаются для всего связанного источника данных ...
UPDATE
Следующее также не устраняет медлительность;
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width={Binding ElementName=expander, Path=Width} />
</Grid.ColumnDefinitions>
..
<Expander Name="expander" Grid.Column="1" Grid.RowSpan="2">
<DataGrid ItemsSource="{Binding collection2}" Width="300" .. />
</Expander>