前提・実現したいこと
Listviewの特定の項目の背景色や文字色を変更したいです。
listViewにList<Data>形式の「list_data」をセットしているのですが、
list_dataのi番目のflagが「true」のとき、それに対応しているリストの色を変える などといった処理は可能でしょうか?
↓やりたいことはこういう感じのイメージです。よろしくお願いいたします。
if(list_data[i].flag == true){ listView[i]の色を変える or ラベルの色を変える }
該当のソースコード
C#
1 class Data 2 { 3 public string label1 { get; set; } 4 public string label2 { get; set; } 5 public string label3 { get; set; } 6 public string label4 { get; set; } 7 public bool flag { get; set; } 8 9 } 10 internal class MyPage : ContentPage 11 { 12 public MyPage() 13 { 14 // List<>からなるデータ取得 15 List<Data> list_data = DataGet("test"); 16 // リストビュー 17 var listView = new ListView 18 { 19 ItemsSource = list_data, 20 }; 21 22 listView.ItemTemplate = new DataTemplate(() => { 23 var l1 = new Label() { }; 24 l1.SetBinding(Label.TextProperty, "label1"); 25 26 var l2= new Label() { }; 27 l2.SetBinding(Label.TextProperty, "label2"); 28 29 var l3 = new Label() { }; 30 l3.SetBinding(Label.TextProperty, "label3"); 31 32 var l4 = new Label() { }; 33 l4.SetBinding(Label.TextProperty, "label4"); 34 35 //縦に並べたテキストレイアウトを作成する 36 var textLayout1 = new StackLayout{ Children = { l1, l2 } }; 37 var textLayout2 = new StackLayout{ Children = { l3, l4 } }; 38 39 return new ViewCell 40 { 41 View = new StackLayout 42 { 43 Orientation = StackOrientation.Horizontal, //横に並べる 44 HorizontalOptions = LayoutOptions.FillAndExpand, 45 46 Padding = new Thickness(20, 10, 0, 0), //パディング 47 48 Children = { 49 textLayout1, 50 textLayout2 51 } 52 } 53 }; 54 }); 55 //ListViewのみをコンテンツとして配置する 56 Content = listView;
補足情報(FW/ツールのバージョンなど)
Visual Studio 2019
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/25 11:15