WP8.1 WinRT ListView keine Auswahl möglich
Hallo Leute,
ich entwickle gerade, wie man aus meinem anderen Thread im Apps-Forum sehen kann, ja an meiner WP8.1 App PhotoKeeper.
Dort habe ich ein kurioses Problem: Bei Win8 verwende ich ein GridView, um die Elemente anzuzeigen, habe dort IsItemClickEnabled, IsRightTapEnabled und IsSwipeEnabled auf true stehen und den SelectionMode auf Multiple. Es ist auch kein Problem, irgendwas zu selektieren, sowohl mittels Maus als auch Touch und auch ein Element anklicken klappt einwandfrei.
Auf WP8.1 wiederum habe ich das Problem, dass ich zwar ein Element anklicken kann und eine Aktion damit durchführe, aber ich bekomme einfach kein Element selektiert, obwohl der SelectionMode mindestens auf Single steht. Auf Multiple gibts ja die Checkboxen, die ebenso nicht funktionieren.
Ich verwende die ListView zur Darstellung der Elemente auf WP8.1.
Kann mir hier vielleicht jemand weiterhelfen und sagen, was ich falsch mache? Habe eine Art Kontextmenü implementiert auf langem Druck, aber das will auch nicht immer, außerdem fände ich es cool, mehrere Elemente selektieren zu können (ähnlich wie bei der Foto-App beispielsweise)
Ich hoffe auf positive Antworten
LG
AW: WP8.1 WinRT ListView keine Auswahl möglich
Hi,
leider habe ich damit noch nicht gearbeitet.
Wenn du mir allerdings ein bisschen XAML-Code/C# zur Verfügung stellst, probiere ich gerne mal ob ich eine Lösung finden.
AW: WP8.1 WinRT ListView keine Auswahl möglich
Hi,
hier mal meine ListView, wie ich sie in der WP8.1 App definiert hab:
Code:
<ListView x:Name="itemListView" HorizontalAlignment="Left" VerticalAlignment="Top" IsItemClickEnabled="True" SelectionMode="Single" IsSwipeEnabled="True" ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}" ItemClick="itemListView_ItemClick">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid Margin="0,8,0,2">
<Button Style="{StaticResource GroupHeaderStyle}" Margin="0,5">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" FontSize="22" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap"/>
<TextBlock Text="{StaticResource ChevronGlyph}" FontSize="18" FontFamily="Segoe UI Symbol" Margin="5,0,0,0" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap"/>
</StackPanel>
<Button.Flyout>
<MenuFlyout Placement="Bottom">
<MenuFlyoutItem x:Uid="AddFolder" Text="Add folder" Click="AddFolderMenuFlyoutItem_Click" />
<MenuFlyoutItem x:Uid="EditGroup" Text="Edit group" Click="EditGroupMenuFlyoutItem_Click" />
<MenuFlyoutItem x:Uid="DeleteGroup" Text="Delete group" Click="DeleteGroupMenuFlyoutItem_Click" />
</MenuFlyout>
</Button.Flyout>
</Button>
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Margin="0,5,0,8" Holding="Grid_Holding">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Background="{ThemeResource ListViewItemOverlayForegroundThemeBrush}">
<Image Width="100" Height="75" Source="{Binding MetaData.Thumbnail}" Stretch="UniformToFill"/>
</Border>
<StackPanel VerticalAlignment="Center" Grid.Column="1" Margin="10,0,0,0">
<TextBlock FontSize="15" Text="{Binding MetaData.Name}" TextWrapping="Wrap" />
<StackPanel Orientation="Horizontal">
<TextBlock x:Uid="Items" FontSize="15" Foreground="{ThemeResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Text="Items: " />
<TextBlock FontSize="15" Foreground="{ThemeResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Text="{Binding MetaData.ItemCount}" Padding="5,0,0,0" />
</StackPanel>
</StackPanel>
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem x:Uid="EditFolder" x:Name="editFolderMenuItem" Text="Edit" Click="editFolderMenuItem_Click" />
<MenuFlyoutItem x:Uid="DeleteFolder" x:Name="deleteFolderMenuItem" Text="Delete" Click="deleteFolderMenuItem_Click" />
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Und hier zum Vergleich mal das GridView (nur Starttag) aus der Win8-Version, wo alles funktioniert:
Code:
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemGridView"
AutomationProperties.Name="Grouped Items"
Grid.RowSpan="2"
Padding="120,137,40,46"
SelectionMode="Multiple"
ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
IsItemClickEnabled="True"
IsRightTapEnabled="True"
IsSwipeEnabled="True"
ItemClick="ItemView_ItemClick"
SelectionChanged="itemGridView_SelectionChanged">
Hoffe, du kannst damit was anfangen. Wenn nichts hilft, entwickel ich mir eine eigene Lösung, dürfte ja nicht zu kompliziert werden, da was gutes zu finden, was sich gut bedienen lässt
AW: WP8.1 WinRT ListView keine Auswahl möglich
Ich bin mir grade nicht sicher, aber ich glaube mal ein ähnliches Probelm gehabt zu haben. Hast du schon mal IsItemCickEnabled auf false gesetzt und geschaut ob sich dann Items auswählen lasssen? Kann gut sein, dass sich da aufgrund der unterschiedlichen Funktionsweise der Selektion (W8 wischen, WP8 auswählen) bei WP diese beiden Properties gegenseitig ausschließen. Heute abend kann ich zu Haues mal nachschauen wie ich die Mehrfachauswahl gestartet habe. Da müsste ich noch ein funktionierendes Beispiel haben.
AW: WP8.1 WinRT ListView keine Auswahl möglich
Ja, ich hab IsItemClickEnabled auch schon auf false gesetzt, Multi würde dann soweit funktionieren, WP blendet mir ja dann checkboxen ein, die sich selektieren lassen.
Wie ich schon sagte, ich kann mir auch schnell was eigenes bauen mittels ItemClick, sollte ja nich zu kompliziert sein.
AW: WP8.1 WinRT ListView keine Auswahl möglich
Hat jemand eine Lösung gefunden, die sich mit Standardmitteln einbauen lässt? Ansonsten werd ich mir einfach dann fix was zusammenbasteln, ist ja kein großes Problem hoffe ich.
AW: WP8.1 WinRT ListView keine Auswahl möglich
Gibt es mittlerweile vielleicht eine Lösung? Habe bereits angefangen, ein wenig zu experimentieren, aber das scheitert derzeit noch daran, dass ich das Handling des Backbuttons noch unter Kontrolle bringen muss (nutze den NavigationHelper und dieser pfuscht mir ins Werk, möchte aber ungern drauf verzichten, so dass ich ihn wohl etwas modifizieren werde).
Alternative Lösungsvorschläge sind immer gern gesehen, man lernt ja nie aus :)
AW: WP8.1 WinRT ListView keine Auswahl möglich
Hi,
hab es leider noch nicht geschafft das auszuprobieren, vielleicht bekomme ich es am Wochenende hin.
AW: WP8.1 WinRT ListView keine Auswahl möglich
Wie ist der Stand? Welche Möglichkeiten gibt es eigentlich, das Template für den Select anzupassen (hätte gerne ne Darstellung wie bei der Fotoapp, da gibts ja auch keine hässlichen Checkboxen)? Geht wohl nur über nen Custom Style, dann verlier ich aber sicher auch wieder den Tilt dabei (siehe anderen Thread)
AW: WP8.1 WinRT ListView keine Auswahl möglich
Ich hab jetzt mein ItemTemplate der ListView so angepasst, dass ich nen Border mit drin hab, der aussieht, als wäre er um das Element gelegt (tatsächlich existiert er im ElementTree neben dem eigentlichen Control). Mein Problem ist nun, dass ich beim ItemClick ja direkt mein Datenelement bekomme und keine Referenz auf das angeklickte Item, so dass ich nicht vermerken kann, dass dieses Element selektiert wäre. Es wäre zwar möglich, aber würde erfordern, dass meine Datenklasse eine IsSelected-Property hat, was ich allerdings gerne vermeiden möchte, denn meine Datenklasse soll relativ frei bleiben von ungebrauchten Dingen.
Hat jemand da eine Idee, wie ich nun weiter verfahren kann? Möchte im Grunde eine ähnliche Handhabung wie in der Fotoapp haben, wobei es mir theoretisch reicht, wenn der Border eine andere Farbe annimmt, wenn das Item selektiert wurde, allerdings hakt es ja genau da, dass ich erst einmal eine Referenz auf das angeklickte ListViewItem bekommen muss (e.ClickedItem enthält ja wie schon genannt das gebundene Datenelement)
Kann mir da jemand helfen bzw. hat jemand noch weitere Lösungen?