Граница в шаблоне ошибки не отображается для всего элемента управления - PullRequest
0 голосов
/ 06 ноября 2019

Я дал шаблон ошибки для текстового поля. Но шаблон не отображается правильно. Ширина границы соответствует ширине текстового блока в предыдущей строке. Он отображает, как показано ниже

enter image description here

Но когда я прокручиваю мышь или увеличиваю окно, появляется граница вокруг всего текстового поля

enter image description here

Шаблон моей ошибки:

<ControlTemplate x:Key="TextBoxErrorStyle">
    <AdornedElementPlaceholder>
        <Border BorderBrush="Red" BorderThickness="1"/>
    </AdornedElementPlaceholder>
</ControlTemplate>

Это текстовое поле является частью сетки в шаблоне элемента списка. Поле со списком является частью другой сетки, для которой Grid.IsSharedSizeScope имеет значение true.

<ListBox ItemsSource="{Binding MyCollection}" 
             VerticalAlignment="Top"
             HorizontalContentAlignment="Stretch"
             Margin="10,100,22,100"
             ScrollViewer.CanContentScroll="False">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Border BorderThickness="1" CornerRadius="2" BorderBrush="LightGray">
                    <DockPanel LastChildFill="True">
                        <Grid DockPanel.Dock="Left">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto" SharedSizeGroup="sharedColumn"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>
                            <TextBlock Grid.Column="0" Grid.Row="0" FontStyle="Italic" Text="Class" Margin="4 7 4 4"/>
                            <TextBlock Grid.Column="1" Grid.Row="0" FontStyle="Italic" Text="{Binding Row1 }" Margin="4 7 4 4" />

                            <TextBlock Grid.Column="0" Grid.Row="1" Text="Row 2"   Margin="4 11 4 4"/>
                            <TextBox Grid.Column="1" 
                                     Grid.Row="1" 
                                     Text="{Binding Quantity , UpdateSourceTrigger=PropertyChanged, ValidatesOnNotifyDataErrors=True, FallbackValue='0'}" 
                                     Validation.ErrorTemplate="{StaticResource TextBoxErrorStyle}"
                                     Margin="4 11 4 4" />
                        </Grid>
                    </DockPanel>
                </Border>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Обновление:

Если я удаляю SharedSizeGroup и исправляю ширину столбца, это работаетправильно. Но я не могу исправить ширину столбца, как это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...