是否可以从子网格视图访问父列表视图项目?
Posted
技术标签:
【中文标题】是否可以从子网格视图访问父列表视图项目?【英文标题】:Is it possible to access parent listview item from child gridview? 【发布时间】:2020-08-23 16:45:24 【问题描述】:好的,所以我有一个带有嵌套 AdaptiveGridView 的 ListView:
<ListView Name="lvBackpacks"
ItemsSource="x:Bind ViewModel.Backpacks"
HorizontalAlignment="Stretch"
Background="Black"
Opacity="0.9" Margin="10"
SelectionMode="None"
DataContext="x:Bind ViewModel">
<ListView.ItemTemplate>
<DataTemplate x:DataType="datalinks:BackpackWithItems">
<StackPanel Orientation="Vertical">
<controls:AdaptiveGridView ItemsSource="x:Bind Items"
OneRowModeEnabled="False"
SelectionMode="None"
DesiredWidth="200">
<GridView.ItemTemplate>
<DataTemplate x:DataType="model:Item">
<Grid>
<StackPanel Orientation="Vertical"
Height="100"
HorizontalAlignment="Stretch"
Padding="5,1,5,1"
Background="LightGray" Opacity=".80">
<Grid>
<TextBlock Text="x:Bind Title, Mode=OneWay"
FontSize="20"
Foreground="Black"
Visibility="Binding ElementName=lvBackpacks, Path=DataContext.IsVisible, Converter=StaticResource FalseToVisibleConverter"/>
<TextBox Text="x:Bind Title, Mode=TwoWay"
Visibility="Binding ElementName=lvBackpacks, Path=DataContext.IsVisible, Converter=StaticResource TrueToVisibleConverter"/>
</Grid>
<Grid>
<TextBlock FontSize="15"
Text="x:Bind Description, Mode=OneWay"
Style="ThemeResource CaptionTextBlockStyle"
Foreground="ThemeResource SystemBaseMediumHighColor"
Visibility="Binding ElementName=lvBackpacks, Path=DataContext.IsVisible, Converter=StaticResource FalseToVisibleConverter"/>
<TextBox Text="x:Bind Description, Mode=TwoWay"
Visibility="Binding ElementName=lvBackpacks, Path=DataContext.IsVisible, Converter=StaticResource TrueToVisibleConverter"/>
</Grid>
<Button CommandParameter="x:Bind I WANT TO ACCESS THE PARENT LISTVIEW ITEM HERE"/>
</StackPanel>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</controls:AdaptiveGridView>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
是否可以从gridview 中的item 中获取listview 中的当前item?我需要将 LV 项目作为 CommandParameter 传递。
我只对包含 MVVM 模式(无代码隐藏)的解决方案感兴趣。
如果这是不可能的,我怎样才能用另一种方法来实现这个功能?
【问题讨论】:
我不知道AdaptiveGridView
是什么,但它的DataContext
是你需要的。
谢谢!我使用 DataContext 发布和回答。
【参考方案1】:
将 DataContext 设置为父列表视图项(只写 x:Bind 确实指的是当前项)。
<controls:AdaptiveGridView Name="gvItems"
ItemsSource="x:Bind Items"
OneRowModeEnabled="False"
SelectionMode="None"
DesiredWidth="200"
DataContext="x:Bind">
父项的用法:
CommandParameter="Binding ElementName=gvItems, Path=DataContext"
【讨论】:
以上是关于是否可以从子网格视图访问父列表视图项目?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Flutter 中的网格视图计数访问生成列表中的特定单元格?