0

如何在有孔的项目上传递 CommandParameter?

我的xml代码

   <ListView  Grid.Row="1" Name="ProfilesListView" SelectedItem="{Binding SelectedUser,Mode=TwoWay}" ItemsSource="{Binding Path=ViewAllProfile,Mode=TwoWay}">
                <ListView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <ItemsWrapGrid Orientation="Horizontal" HorizontalAlignment="Center">
                        </ItemsWrapGrid>
                    </ItemsPanelTemplate>
                </ListView.ItemsPanel>
                <I:Interaction.Behaviors>
                    <core:EventTriggerBehavior EventName="Holding">
                        <core:InvokeCommandAction Command="{Binding Path=HoldingCommand}" CommandParameter="{Binding ElementName=ProfilesListView,Path=SelectedItem}"  ></core:InvokeCommandAction>
                    </core:EventTriggerBehavior>
                </I:Interaction.Behaviors>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel   Margin="10,0,0,0">
                            <Image  Margin="10" Source="{Binding ImageURL}"   Width="150" Height="150" >
                            </Image>
                            <TextBlock x:Name="userName"  Text="{Binding MenuName}" Foreground="White" HorizontalAlignment="Center"></TextBlock>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>               
            </ListView>

我的视图模型是。我没有得到持有物品的详细信息。如何解决这个问题

 _HoldingCommand = new RelayCommand<object>(HoldedUser);
4

1 回答 1

0

不确定这可以直接通过 MVVM 绑定来完成。举行事件不会立即设置所选项目...

如果您要注册到holding 事件并使用后面的代码,您会注意到“holded”项目仅在 HoldingRoutedEventArgs 中已知 - 如下所示:

private async void OnListViewHolding(object sender, HoldingRoutedEventArgs e)
{
   var selectedItemThroughHolding = e.OriginalSource.DataContext as ***Model;
}

所以我的建议是在事件后面使用这个代码并将 selectedItem 重新路由到那里的视图模型......

于 2016-07-26T09:22:18.937 回答