Как правило, я использую <Grid.RowDefinitions>
и <Grid.ColumnDefinitions>
в сочетании со звездообразным размером * вместо полей для этого типа макета.
ОБНОВЛЕНИЕ 1: (удалено для ясности)
ОБНОВЛЕНИЕ 2: Когда я попадаю в такие ситуации, когда не могу понять, где применить привязку или шаблон, я пытаюсь выполнить резервное копирование и посмотреть на проблему по-другому. Я почти всегда возвращаюсь к шаблону MVVM. В этом случае ваша Модель является вашим объектом EventHistory. Ваша ViewModel имеет ObservableCollection<EventHistory>
. И ваш взгляд просто привязан к этой коллекции. Итак, чтобы получить что-то вроде этого:
![enter image description here](https://i.stack.imgur.com/BM7KM.png)
Вы бы использовали что-то подобное для своего просмотра:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="8" />
<RowDefinition Height="1.5*" />
</Grid.RowDefinitions>
<DataGrid Grid.Row="0" AutoGenerateColumns="True"
ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True"
HorizontalGridLinesBrush="DarkGray" VerticalGridLinesBrush="DarkGray" />
<GridSplitter Grid.Row="1"
Background="Transparent"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<Border Grid.Row="2" BorderBrush="DarkGray" BorderThickness="1" CornerRadius="3" Padding="8">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Status" />
<TextBox Grid.Row="0" Grid.Column="1" Margin="0,0,0,8" Text="{Binding Path=Status}" />
<Label Grid.Row="1" Grid.Column="0" Content="Detailed Description" />
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Path=Description}" />
</Grid>
</Border>
</Grid>
И это прекрасно - потому что это то, чего вы пытаетесь достичь. Привязки к двум меткам и текстовым полям внизу экрана не обязательно должны быть частью какого-либо шаблона данных. Они являются частью вида (все, что внутри красной границы на скриншоте). Все изменения размера работает, и все хорошо. Если вы действительно хотите перенести вещи в DataTemplate, это возможно, но на данный момент это кажется более естественным.
ПРИМЕЧАНИЕ. После создания вида (область внутри красной рамки) я разместил его в главном окне, оставив область справа, как показано на скриншоте. Я также взял несколько привилегий с разветвителем сетки, изменением размеров звезд и полями, чтобы вещи занимали все доступное пространство при сохранении изображенных пропорций.
Надеюсь, это поможет!