[WPF] データに応じてリストの表示形式を切り替える
はじめに
ListBox に代表される ItemsControl コントロールを使って、色々な形式のデータを表示する方法をまとめました。
対応方法
表示する元データ
今回は "データ形式" と "値" を個別に管理するクラスを用意しました。
class MyData
{
public enum ItemType { Bool, Int, String };
public ItemType Type { get; }
public bool BoolValue { get; set; }
public int IntValue { get; set; }
public string StringValue { get; set; }
/* コンストラクタ省略 */
}
表示する元リスト
enum型の ItemType に応じて表示形式を切り替えます。
public static List<MyData> Items => new List<MyData>()
{
new MyData(false),
new MyData(true),
new MyData(123),
new MyData("Hello"),
new MyData(null),
new MyData(4321),
new MyData("こんにちわ"),
new MyData(false),
new MyData(0),
};
表示1:データ種別に応じて表示形式を切り替える
ItemsControl.ItemContainerStyleSelector を使い、データ種別に応じて Style を切り替えます。
表示2:データ種別に応じてグルーピングする
ItemsControl.GroupStyle.HeaderTemplateSelector を使い、データ種別に応じて DataTemplate を切り替えます。
表示3:グルーピングしてデータ種別に応じて表示形式を切り替える
ItemsControl.GroupStyle.ContainerStyleSelector を使い、データ種別に応じて Style を切り替えます。
まとめ
説明は冒頭で力尽きてしまいましたが、ソースコードは以下に置いてあります。
参考にさせて頂いたページ
Author And Source
この問題について([WPF] データに応じてリストの表示形式を切り替える), 我々は、より多くの情報をここで見つけました https://qiita.com/myoga/items/ef2e97c7a7b56a888299著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .