c# - 是否可以从子网格视图访问父列表视图项?
问题描述
好的,所以我有一个带有嵌套 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 中的项目获取列表视图中的当前项目?我需要将 LV 项目作为 CommandParameter 传递。
我只对包含 MVVM 模式(无代码)的解决方案感兴趣。
如果这是不可能的,我怎样才能用另一种方法实现这个功能?
解决方案
将 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}"
推荐阅读
- ruby-on-rails - 如果未经授权,ActiveAdmin 设置自定义重定向路径
- java - Selenium InternetExplorerDriver 没有在窗口上获得焦点
- django - 如何使用 django rest 更改 oauth2 中令牌的 expiry_in 参数
- c++builder - 无法从“TFmxChildrenList”转换为“TRectangle *”
- java - 将字符串传递给另一个类中的 main 方法
- javascript - 猫头鹰滑块单击下一个前一个触发所有其他滑块滑动
- c# - float.NaN 的 DataAnnotations 属性
- jasper-reports - 如何通过将值传递为真或假来隐藏jasper报告中croostab中的特定行?
- google-visualization - 谷歌时间线 - 如何在当前日期中包含一条垂直线
- windows - 带有 ~ENABLE_LINE_INPUT 的控制台未通过 /r