#c# #xamarin
#c# #xamarin
Вопрос:
Я создаю список, и мне нужен разный цвет фона для каждого элемента в списке. В моем коде цвет фона белый. Я чего-то не понимаю.
using Xamarin.Forms;
namespace App5
{
public partial class MainPage : ContentPage
{
public class ListItem
{
public string Title { get; set; }
public Color ForeColor { get; set; }
public Color BackgroundColor { get; set; }
}
public MainPage()
{
InitializeComponent();
var listView = new ListView();
listView.ItemsSource = new ListItem[] {
new ListItem {Title ="Red", ForeColor = Color.White, BackgroundColor = Color.Red},
new ListItem {Title ="Orange", ForeColor = Color.White, BackgroundColor = Color.Orange},
new ListItem {Title ="Yellow", ForeColor = Color.White, BackgroundColor = Color.Yellow},
new ListItem {Title ="Green", ForeColor = Color.White, BackgroundColor = Color.Green},
new ListItem {Title ="Blue", ForeColor = Color.White, BackgroundColor = Color.Blue},
new ListItem {Title ="Violet", ForeColor = Color.White, BackgroundColor = Color.Violet}
};
listView.RowHeight = 80;
listView.ItemTemplate = new DataTemplate(typeof(ListItemCell));
Content = listView;
listView.ItemTapped = async (sender, e) => {
ListItem item = (ListItem)e.Item;
await DisplayAlert("Tapped", item.Title.ToString() " was selected.", "Ok");
((ListView)sender).SelectedItem = null;
};
}
class ListItemCell : ViewCell
{
public ListItemCell()
{
Label titleLabel = new Label
{
HorizontalOptions = LayoutOptions.FillAndExpand,
FontSize = 25,
FontAttributes = Xamarin.Forms.FontAttributes.Bold,
TextColor = Color.White
};
titleLabel.SetBinding(Label.TextProperty, "Title");
StackLayout viewLayoutItem = new StackLayout()
{
HorizontalOptions = LayoutOptions.StartAndExpand,
Orientation = StackOrientation.Vertical,
Children = { titleLabel}
};
StackLayout viewLayout = new StackLayout()
{
HorizontalOptions = LayoutOptions.StartAndExpand,
Orientation = StackOrientation.Horizontal,
Padding = new Thickness(25, 10, 55, 15),
Children = { viewLayoutItem }
};
View = viewLayout;
}
}
}
}
Хорошо, после дополнительных исследований я понял, что мне не хватает привязки для предварительного цвета и цвета фона. Пора разобраться с этим фрагментом.
Комментарии:
1. Когда вы задаете вопрос, появляется кнопка, которая выделяет код
2. Вы можете опубликовать свое решение в качестве ответа и пометить его, чтобы его увидело больше людей.
Ответ №1:
Я понял, чего мне не хватало. Я убрал предварительный цвет, потому что смог задать цвет текста по-другому, поскольку весь текст был только одного цвета.
Что касается фона, мне этого не хватало:
viewLayout.Привязка к заданию (StackLayout.BackgroundColorProperty, «Фоновый цвет»);
Теперь это работает 🙂