Я поставил ListView в средней строке представления. Представление содержится в окне, которое имеет параметр SizeToContent для WidthAndHeight. ListView первоначально пуст, но базовый ViewModel заполняет это представление списка в этом процессе.Как предотвратить изменение размера окна ListView?
Средняя высота решетки. Высота установлена на *, чтобы заполнить доступный размер окна. Когда ListView получает новые элементы, в какой-то момент он будет расширять размер окна вместо отображения ScrollViewer в ListView. Как я могу предотвратить такое поведение, чтобы параметр SizeToContent был установлен в WidthAndHeight, высота Grid.Row до *, но не имеет ли ListView расширение размеров окна?
Вот код для окна (свойство рабочей области будет содержать ViewModel):
<Window x:Class="Views.ContainerWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{Binding Title}"
SizeToContent="WidthAndHeight">
<ContentControl Content="{Binding Workspace}"/>
</Window>
Взгляд за предоставленный ViewModel выглядит следующим образом:
<UserControl x:Class="Views.SomeView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
MinHeight="450">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"
TextWrapping="Wrap"
Margin="5"
Text="Some description text"/>
<ListView Grid.Row="1"
ItemsSource="{Binding ItemsList}"
Margin="5">
<ListView.View>
<GridView>
...
</GridView>
</ListView.View>
</ListView>
<Button Grid.Row="2"
HorizontalAlignment="Right"
Command" Value="{Binding CloseCommand}"/>
</Grid>
</UserControl>
Спасибо. На самом деле это решение, которое я использовал. Вы можете видеть это, если вы развернете комментарии выше. :) –
@Ninfendo: +1 Это злобно, спасибо. Я потратил день, пытаясь понять это. – TarkaDaal