如何在listbox datatemplate中获取当前点击的图像的URL和名称

时间:2014-11-05 08:11:32

标签: c# xaml windows-phone-8

下面是xaml中的wp应用代码。代码加载图像的数量及其名称。现在我想让当前点击的图像的URL和名称作为参数传递到另一个页面以加载特定的imgae和名称。帮我。

<ListBox Name="tileList" Grid.Row="2" Margin="12,0,14,0" >
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <toolkit:WrapPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top">
                <TextBlock Text="{Binding TileName}"></TextBlock>
                <Image Source="{Binding ImgUri}" Height="200" Width="350" Margin="5,0,0,0" Tap="on_Tap">
                </Image>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

2 个答案:

答案 0 :(得分:1)

这是你应该自己解决的基本问题。但我在这里给理论不是代码。

  • 查找ListBox选择更改事件。然后从此    将发件人强制转换为ListBox并从中获取SelctedItem。    此选定的项目将是您的列表的ItemClass的类型    say - 列出你设置为列表框的项目源的列表。

  • 到目前为止,你已经获得了所选的ItemClass对象    包含TileName和ImageUri。所以使用MVVM Messenger Class    将此项目发送到下一页。你可以谷歌它如何使用MVVM    信使你会找到答案。

我可以给你代码,但我认为在开始阶段你应该自己尝试很多东西。快乐学习:)

编辑1: -

您将参数从一个页面发送到另一个页面的方式是正确的。这是截图。 enter image description here

Source Page-navigation with parameters

你能告诉我什么不行吗?你有任何例外吗?

任何问题只是评论。

答案 1 :(得分:1)

@loop使用以下代码

获取变量名中的tilename和imguri
ListBox lb = (ListBox)sender;
   var name = lb.SelectedItem;
   NavigationService.Navigate(new Uri("/Options.xaml?name=" + name, UriKind.Relative));

帮我从变量名中获取tilename和imguri值。