[WPF][ComboBox] アイテムのソート方法

スポンサーリンク

概要

WPFのComboBoxは、複数の選択肢から1つを選ぶ際に便利なコントロールですが、アイテムが増えるとソートすることが重要になります。この記事では、WPF ComboBoxのアイテムをソートする方法を解説します。初心者向けにわかりやすく説明するので、ぜひ参考にしてください。

構文

ComboBoxのアイテムをソートするには、CollectionViewSourceを使用します。以下のような構文を使います。

<ComboBox>
  <ComboBox.ItemsSource>
    <Binding>
      <Binding.Source>
        <CollectionViewSource Source="{Binding SourceList}" >
        <CollectionViewSource.SortDescriptions>
        <scm:SortDescription PropertyName="PropertyName" Direction="Ascending"/>
        </CollectionViewSource.SortDescriptions>
        </CollectionViewSource>
     </Binding.Source>
    </Binding>
  </ComboBox.ItemsSource>
</ComboBox>

SourceList: ソートするアイテムが含まれるコレクションを指定します。
PropertyName: ソートする際のプロパティ名を指定します。例えば、アイテムが文字列の場合は”Text”などが指定されます。アプリケーションに応じて適切なプロパティ名を指定してください。
Direction: ソートの向きを指定します。Ascending(昇順)またはDescending(降順)を選択できます。

使用例

以下の例では、ComboBoxのアイテムを昇順でソートする方法を示します。

<Window.Resources>
  <CollectionViewSource x:Key="SortedItems" Source="{Binding Items}">
  <CollectionViewSource.SortDescriptions>
  <scm:SortDescription PropertyName="Name" Direction="Ascending"/>
  </CollectionViewSource.SortDescriptions>
  </CollectionViewSource>
</Window.Resources>

<Grid>
  <ComboBox ItemsSource="{Binding Source={StaticResource SortedItems}}" 
    DisplayMemberPath="Name" />
</Grid>

上記の例では、ItemsというコレクションをComboBoxのアイテムとしてバインドしています。このコレクションのアイテムはNameプロパティで昇順にソートされて表示されます。

Please follow and like us:

コメント

タイトルとURLをコピーしました