如何将命令绑定到 MVVM 中的跳转列表长列表选择器
本文关键字:列表 选择器 MVVM 命令 绑定 | 更新日期: 2023-09-27 18:35:36
我有以下绑定到命令的 xaml...但我不知道如何将信息传递给命令以了解点击了哪个项目:
<DataTemplate x:Key="OrganisationsItemTemplate">
<StackPanel VerticalAlignment="Top" Margin="5,0,0,0">
<Button ... Command = "{Binding LoadPage}">
<Grid Margin="0,0,5,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="67"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Background="Transparent">
<Border Background="White" BorderThickness="0" Width="62" Height="62" HorizontalAlignment="Left" Margin="0,0,0,5">
<Image Source="{Binding image.thumbnail_link}" Width="62" Height="62"></Image>
</Border>
</StackPanel>
<StackPanel Grid.Column="1" VerticalAlignment="Center" Background="Transparent">
<TextBlock Text="{Binding name}" HorizontalAlignment="Left" FontSize="30" VerticalAlignment="Center" Margin="0,0,0,5" />
</StackPanel>
</Grid>
</Button>
</StackPanel>
</DataTemplate>
跳转列表中的这些项目有望打开一个新的 xaml 页面,该页面将显示特定于我所选项目的详细信息。 例如,如果我选择可口可乐作为组织,它应该显示 Detail.xaml,它将列出可口可乐组织的详细信息(由组织 ID 获取)。
如果您建议我改用超链接按钮,您是否有一个例子,如果我放入一个,则会出现以下错误:
+ ExceptionObject {System.ArgumentException: Value does not fall within the expected range.} System.Exception {System.ArgumentException}
我认为这是因为我在其中嵌套了其他元素......这,有点..我需要做什么?
你应该将 CommandParameter 传递给你的 Command 并为其提供相关的对象。
<Button Command="{Binding LoadPage}" CommandParameter={Binding ElementName=ParentItem Path=DataContext}">