私はいくつかの項目を含むリストビューを持っています。アイテムを選択すると詳細情報を表示するようにアイテムを展開したいのですが、どうすればいいですか?UWP ListView:アイテムを選択するときにアイテムを展開する方法は?
答えて
私はCustomControl
を慎重にチェックしていませんでした。これは@AVK Naiduによって提供されたもので、問題は解決しているようです。しかし、ここでは、デフォルトのListView
コントロールでこの作業を行うことは可能ですが、選択すると、ListViewItem
のDataTemplate
を変更するだけです。
ただ、ここでは例えば:
<Page.Resources>
<DataTemplate x:Name="Normal" x:Key="Normal">
<TextBlock Text="{Binding Name}" />
</DataTemplate>
<DataTemplate x:Name="Detail" x:Key="Detail">
<StackPanel>
<TextBlock Text="{Binding Name}" FontSize="30" Foreground="Red" HorizontalAlignment="Center" />
<TextBlock Text="Details:" FontSize="30" Foreground="Blue" Margin="0,10" />
<TextBlock Text="{Binding Details}" FontSize="20" />
</StackPanel>
</DataTemplate>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ListView ItemTemplate="{StaticResource Normal}"
ItemsSource="{x:Bind Collection}" SelectionChanged="listView_SelectionChanged" />
</Grid>
コードの後ろlistView_SelectionChanged
用:
private void listView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//Assign DataTemplate for selected items
foreach (var item in e.AddedItems)
{
ListViewItem lvi = (sender as ListView).ContainerFromItem(item) as ListViewItem;
lvi.ContentTemplate = (DataTemplate)this.Resources["Detail"];
}
//Remove DataTemplate for unselected items
foreach (var item in e.RemovedItems)
{
ListViewItem lvi = (sender as ListView).ContainerFromItem(item) as ListViewItem;
lvi.ContentTemplate = (DataTemplate)this.Resources["Normal"];
}
}
結果:スタックオーバーフローへ
うわー!これは絶対に私が望むものです!ありがとう^ _^ – THaGKI9
しかし、私はそれが異なるアイテムに異なるサイズを割り当てることはプロパティではないと感じ、これは何らかの形でユーザーエクスペリエンスに影響を与えます。最後に私のアプリケーションの詳細ページを追加します。 – THaGKI9
@ THaGKI9、「しかし、違うサイズを別のアイテムに割り当てるのはプロパティではないと思う」と言っても、それは正しくないのですか?私はそれがあなたのアプリで達成する必要があるものに基づいていると思う。実装はマスター/ディテールもメソッドです。これを実装するには、公式の[マスター/ディテールサンプル](https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/)を参照してください。 XamlMasterDetail)。 –
- 1. Android ListViewとOnClickListener:選択したアイテムを取得する方法
- 2. UWP Listviewは選択できませんがクリック可能なアイテム
- 3. UWPで選択されたListViewアイテムのスタイルを変更するには
- 4. ListView android xamarinで選択したアイテムを削除する方法
- 5. ListView/DataGridViewは、アイテムが選択されたときにグループ化を展開します。
- 6. 親アイテムを展開するときの子アイテムの間隔
- 7. 選択したアイテムをlistviewから配列に格納する方法は?
- 8. ListViewから複数のアイテムを選択
- 9. #linq listView - オブジェクトに選択されたアイテム
- 10. Metro Style AppのlistViewでアイテム選択アニメーションをカスタマイズする方法は?
- 11. ユーザーがアイテムを選択した後にListViewを削除する
- 12. Gtk#とtreeview:「選択済み」アイテムを取得する方法は?
- 13. ListView C#でアイテムをシャッフルする方法
- 14. アイテムを選択できないスピナーを作る方法は?
- 15. 選択したアイテムListViewバックグラウンドの変更
- 16. Xamarin.Forms iOS listview選択したアイテムの色
- 17. Windowsでアイテムを選択するには、?
- 18. ListViewで選択されたアイテムとマウスオーバーアイテムのスタイルを設定するには
- 19. ListViewアイテムのインクリメンタルロードを実装する方法は?
- 20. WPF ComboBox選択したアイテムをコードにバインドする方法は?
- 21. チェックボックスリストの非選択アイテムを非表示にする方法は?
- 22. ListViewのアイテムがWebViews - Transition Animationに展開されています
- 23. 選択したListViewアイテムの画像を変更する
- 24. WPF:キーボードでListViewアイテムをナビゲートして選択する
- 25. ListView、選択したアイテムを強調表示する
- 26. ListView単一の選択肢がアイテムのサイズに適応する
- 27. QTreeWidgetアイテムをドラッグアンドドロップで展開する
- 28. htmlを保持する方法を選択したときに展開する
- 29. UWP ListViewアイテムのカスタムUIをドラッグ
- 30. ListViewフラグメントタブでクリックしたアイテムからフラグメント(依存するアイテム)を開き、再利用する方法
ようこそ!良い質問をするので、良い答えを得るためにあなたを助けるために私たちの[SO質問チェックリスト](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)を確認してください。 –
これを行うデフォルトコントロールはありません。しかし、同様の動作のためのCustomControlsがあります。 [this](http://deanchalk.com/a-xaml-uwp-custom-control-the-expander/) – AVK
@AVKNaiduをご覧ください。このようなCustomControlを提供するのはとても親切ですが、デフォルトの 'ListView'コントロールを使ってこの作業を行うことができます。詳細については私の答えを確認することができます。 –