【发布时间】:2021-01-25 08:20:44
【问题描述】:
这个问题可能很令人困惑,所以我会尝试澄清它,所以基本上我在另一个 CollectionView 中有一个 CollectionView,我想将第二个 CollectionView 中包含的视图属性绑定到 dataTemplate 显示的单个对象的属性的第一个 collectionView。
我可以将第二个 CollectionView 的 ItemsSource 绑定到绑定到第一个 collectionView 的同一个 ObservableCollection,这样我就可以访问提到的 ObservableCollection 中包含的每个对象的属性,但我想要的是第二个 CollectionView 仅绑定到显示第二个 CollectionView 的第一个 CollectionView 的 DataTemplate 显示的对象。 我希望我能够正确地解释它。
XAML 代码:
<ContentPage.Resources>
<ResourceDictionary>
<selectors:FirstSelector x:Key="First"/>
<selectors:SecondSelector x:Key="Second"/>
</ResourceDictionary>
</ContentPage.Resources>
<renderers:GradientLayout
ColorsList="#FFFFFF,#FFFFFF"
Mode="ToBottomLeft"
Padding="10,50,10,0">
<ScrollView>
<StackLayout>
<CollectionView
ItemsSource="{Binding FirstList}"
ItemTemplate="{StaticResource First}"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"
Margin="0,0,0,15">
<CollectionView.ItemsLayout>
<LinearItemsLayout
Orientation="Vertical"
ItemSpacing="15"/>
</CollectionView.ItemsLayout>
<CollectionView.Resources>
<DataTemplate x:Key="Normal">
<Grid
HeightRequest="400"
HorizontalOptions="FillAndExpand"
ColumnDefinitions="20*,30*,25*,25*"
RowDefinitions="15*,70*,15*">
<Frame
Padding="0"
HasShadow="False"
BackgroundColor="Pink"
CornerRadius="30"
IsClippedToBounds="True"
Grid.Column="0"
Grid.Row="1"
Grid.ColumnSpan="4">
<CollectionView
ItemTemplate="{StaticResource Second}"
ItemsSource="{Binding Source={x:Reference home},Path=BindingContext.FirstList}"
BackgroundColor="Blue"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand">
<CollectionView.ItemsLayout>
<LinearItemsLayout
Orientation="Horizontal"
ItemSpacing="0">
</LinearItemsLayout>
</CollectionView.ItemsLayout>
<CollectionView.Resources>
<DataTemplate x:Key="NormalTwo">
<Grid
WidthRequest="392"
BackgroundColor="Orange"
ColumnDefinitions="100*"
RowDefinitions="100*"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"
Padding="0">
<Frame
BackgroundColor="Purple"
HasShadow="False"
CornerRadius="20"
Padding="0"
Grid.Column="0"
Grid.Row="0">
<Image
Margin="-2,0,0,0"
Source="source.jpg"
Aspect="AspectFill"
HeightRequest="200">
</Image>
</Frame>
</Grid>
</DataTemplate>
</CollectionView.Resources>
</CollectionView>
</Frame>
</Grid>
</DataTemplate>
</CollectionView.Resources>
</CollectionView>
</StackLayout>
</ScrollView>
</renderers:GradientLayout>
前面的代码显示了一个垂直的collectionView,它以FirstList 作为ItemsSource,并包含一个collectionView。这第二个CollectionView有FirstList作为ItemsSource,所以它显示了一个水平列表只要第一个CollectionView,这就是问题所在,我只想让它访问其中包含的DataTemplate的对象。
就是这样,如果您需要更多信息,我会在看到您的请求后立即提供,非常感谢大家的宝贵时间,祝您有美好的一天。
【问题讨论】:
标签: c# xaml xamarin xamarin.forms uicollectionview