방금 Xamarin.Forms를 사용하기 시작했으며 ListView에 대한 질문이 있으며 웹에서 답변을 찾을 수 없습니다. 아래 코드에서, ItemTemplate에서 요소의 인덱스를 얻거나 셀에 표시된 ItemSource에 액세스하는 방법이 필요합니다. 표시된 이미지의 경로를 작성해야합니다. 인덱스와 요소를 둘 다 가질 수 있다면 더 좋습니다. CustomRenderer를 사용하지 않고 어떤 방법 으로든?Forms ListView 행 인덱스
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;
})
};
하지만 내가 틀리지 않으면 DataTemplate 내부의 ItemsSource에 액세스 할 수 없습니다. –
또한 예제의 DataTemplate에서 BindingContext는 항상 null입니다 ... 매우 이상합니다 .. –
xaml에서도 가능합니까? – batmaci