Я только начал играть с Xamarin.Forms, и у меня есть вопрос о ListView и ответа нет в Интернете. В приведенном ниже коде мне нужно в ItemTemplate получить индекс элемента или способ доступа к ItemSource, отображаемому в ячейке, так как мне нужно создать путь к отображаемому изображению. Лучше, если я могу иметь как индекс, так и элемент. В любом случае без использования CustomRenderer?Forms ListView index index
ListView listView = new ListView
{
HasUnevenRows = true,
// Source of data items.
ItemsSource = DataManager.GetPeople(),
ItemTemplate = new DataTemplate(() =>
{
// Create views with bindings for displaying each property.
Label nameLabel = new Label();
nameLabel.SetBinding(Label.TextProperty, "Name");
nameLabel.TextColor = Color.White;
var relativeLayout = new RelativeLayout {};
var webImage = new Image { Aspect = Aspect.AspectFill };
image.HeightRequest = 200;
image.Source = ImageSource.FromFile(Path.Combine(path, "/people/263/1.jpg"));
relativeLayout.Children.Add(image,Constraint.Constant(0),Constraint.Constant(0));
relativeLayout.Children.Add(nameLabel,
Constraint.RelativeToParent((parent) => {
return parent.Width/2 - nameLabel.Width/2;
}),
Constraint.RelativeToParent((parent) =>
{
return parent.Height - 20;
}));
// Return an assembled ViewCell.
var viewCell = new ViewCell
{
View = relativeLayout
};
viewCell.Height = 200;
relativeLayout.HeightRequest = 200;
return viewCell;
})
};
Но если я не ошибаюсь, вы не можете получить доступ к ItemsSource внутри DataTemplate. –
Также в DataTemplate в примере BindingContext всегда имеет значение null ... довольно странно .. –
это даже возможно на xaml? – batmaci