В WPF Itemscontrol не показывает результат должным образом, он объединяет все записи в одном месте. - PullRequest
0 голосов
/ 28 мая 2018

Я украшаю свою базу ItemsControl на основе записей, но она перекрывает все записи друг на друге, я создал снимок экрана с выводом и вставляю часть xaml для той же записи.

<Border CornerRadius="6" BorderBrush="Gray" Background="LightGray" BorderThickness="2"  Grid.Row="1" >
        <ItemsControl x:Name="productsList" ItemsSource="{Binding ProductsCollection}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                    </Grid>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Horizontal" Margin="10" Grid.Row="0" VerticalAlignment="Top" HorizontalAlignment="Left">
                            <StackPanel VerticalAlignment="Top" HorizontalAlignment="Left" Orientation="Vertical">
                                <TextBlock Text="{Binding Title, Mode=TwoWay}" Style="{DynamicResource DataLabel}"/>
                            </StackPanel>
                            <StackPanel Margin="5" VerticalAlignment="Top" HorizontalAlignment="Left" Orientation="Vertical">
                                <Button x:Name="btnEdit" Click="btnEdit_Click" Tag="{Binding}" Style="{StaticResource EditButtonStyle}" Content="Edit" />
                                <Button x:Name="btnDelete" Click="btnDelete_Click" Tag="{Binding}" Style="{StaticResource DeleteButtonStyle}" Content="Delete" />
                            </StackPanel>
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
            <ItemsControl.ItemContainerStyle>
                <Style>
                    <Style.Setters>
                        <Setter Property="Grid.Row" Value="{Binding MyRow}" />
                        <Setter Property="Grid.Column" Value="{Binding MyColumn}" />
                    </Style.Setters>
                </Style>
            </ItemsControl.ItemContainerStyle>
            <ItemsControl.Template>
                <ControlTemplate>
                    <ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}">
                        <ItemsPresenter />
                    </ScrollViewer>
                </ControlTemplate>
            </ItemsControl.Template>
        </ItemsControl>
    </Border>

enter image description here

1 Ответ

0 голосов
/ 30 мая 2018

Я решил проблему, удалив следующую форму кода ItemsPanelTemplate.И я использовал WrapPanel вместо Grid.

 <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="*"/>
          </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
          <ColumnDefinition Width="*"/>
      </Grid.ColumnDefinitions>
</Grid>

Выше код заменен следующим ...

 <ItemsPanelTemplate>
   <WrapPanel  Orientation="Horizontal" />
 </ItemsPanelTemplate>
...