Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Desktop] ItemsWrapGrid does not work in ListView.ItemsPanel when used as ItemsPanelTemplate #19062

Open
kucint opened this issue Dec 11, 2024 · 1 comment
Labels
difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. kind/bug Something isn't working triage/untriaged Indicates an issue requires triaging or verification

Comments

@kucint
Copy link

kucint commented Dec 11, 2024

Current behavior

define user control with following content:

<UserControl.Resources>
  <CollectionViewSource x:Name="CategoryCollectionViewSource" IsSourceGrouped="True" />
</UserControl.Resources>

<ListView ItemsSource="{x:Bind CategoryCollectionViewSource.View, Mode=OneWay}"
          SelectionMode="Single"
          ShowsScrollingPlaceholders="True"
          BorderThickness="{ThemeResource ListBoxBorderThemeThickness}"
          BorderBrush="{ThemeResource ListBoxBorderThemeBrush}"
          SelectedItem="{x:Bind SelectedItem, Mode=TwoWay}">

  <ListView.ItemsPanel>
    <ItemsPanelTemplate>
      <!--If the following line (<ItemsWrapGrid/>) will be commented out
      and the PRJ will be launched in net9.0-desktop mode,
      5 Items (A, B, C, D, E), will be displayed in a ListView.
      However, if the following line is active, nothing will be displayed.

      Note: In net9.0-windows it works as expected with and without that line.

      Our fazit: ItemsWrapGrid is not compatible with net9.0-desktop.-->

      <ItemsWrapGrid/>

    </ItemsPanelTemplate>
  </ListView.ItemsPanel>

  <ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem" BasedOn="{StaticResource DefaultListViewItemStyle}">
      <Setter Property="MinWidth" Value="0"/>
      <Setter Property="Margin" Value="0,0"/>
      <Setter Property="Padding" Value="15,0,15,0"/>
    </Style>
  </ListView.ItemContainerStyle>

  <ListView.ItemTemplate>
    <DataTemplate x:DataType="local:Item">
      <TextBlock Text="{x:Bind Label}" HorizontalAlignment="Center"/>
    </DataTemplate>
  </ListView.ItemTemplate>

</ListView>

and use it in a Page:

<Grid>

    <acc:AccordionCtrl x:Name="AccordionCtrl"
                     Grid.Column="0" Grid.Row="0"
                     Margin="5"
                     HorizontalAlignment="Stretch"
                     VerticalAlignment="Stretch"/>

</Grid>

Expected behavior

this works correctly on WindowsAppSdk:
image

but fails on Desktop:
image

Apparently ItemsWrapGrid fails to display its content when used as a template in ListView.ItemsPanel

How to reproduce it (as minimally and precisely as possible)

MINIMAL REPRO PROJECT: MWEApp.zip

Workaround

none

Works on UWP/WinUI

Yes

Environment

No response

NuGet package version(s)

No response

Affected platforms

Skia (WPF)

IDE

Visual Studio 2022

IDE version

No response

Relevant plugins

"Uno.Sdk": "5.5.54"

Anything else we need to know?

No response

@kucint kucint added difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. kind/bug Something isn't working triage/untriaged Indicates an issue requires triaging or verification labels Dec 11, 2024
@jeromelaban
Copy link
Member

jeromelaban commented Dec 11, 2024

Thanks the report. This is indeed currently not yet supported for desktop #4023. Using ItemsRepeater can be another way to implement this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. kind/bug Something isn't working triage/untriaged Indicates an issue requires triaging or verification
Projects
None yet
Development

No branches or pull requests

2 participants