使用GestureServices在列表框中获取文本块值

时间:2012-08-21 02:21:04

标签: c# windows-phone-7 xaml

对不起伙计们,我早些时候已经问过这个问题,但无法找到答案。做了一个编辑,看看是否会碰到它,但这似乎不起作用。所以这是问题的最后一次尝试

我似乎无法弄清楚如何在列表框中获取特定文本块的值。首先,这是代码:

<ListBox HorizontalAlignment="Left" Name="listItems" VerticalAlignment="Top" >
   <ListBox.ItemTemplate>
      <DataTemplate>
         <StackPanel Orientation="Horizontal" Height="210" >
            <Grid Height="210" Background="#75FFF8DC">

               <toolkit:GestureService.GestureListener>
                  <toolkit:GestureListener Tap="GestureListener_Tap"
                     DoubleTap="GestureListener_DoubleTap"
                     Hold="GestureListener_Hold"
                     Flick="GestureListener_Flick"/>
               </toolkit:GestureService.GestureListener> 

                     ...CODE... 
</></></>...

代码区域包含一堆其他网格,分区(列和行)和文本块。这是一个例子:

<Image Name="XXX" Source="{Binding XXXPath}" Stretch="Fill" 
   Grid.Column="0"/>
<TextBlock Name="YYY" Grid.Column="1" Grid.Row="0"  
   Text="{Binding YYYPath}" Foreground="Black"/>
<TextBlock Name="ZZZ" Grid.Column="2" Grid.Row="0"  
   Text="{Binding ZZZPath}" Foreground="Black"/>

所以我想要的是,如果有人点击网格(这意味着网格中的任何内容,包括这些文本块和图像),我想先得到文本块“YYY”的文本。

我可以将该代码插入到文本块中并将发件人用作文本块,但我不想将我的手势限制为一个文本块,我也不想为网格中的每个元素重复这些(很多问题和似乎不必要)。

编辑:如果这不起作用,我也可以只实现一个轻击手势(但同样,对整个网格)并使用它来获取文本块的值。有没有办法?否则我将不得不这样做:为文本块添加tap并使用sender作为文本块,然后获取文本的值。但我确实想要使用这种方法。

1 个答案:

答案 0 :(得分:0)

我看到你使用了文本块和图像的绑定。那么为什么不使用(如果你还没有这样做)一个IList类的实例来保存关于它们的信息呢?然后将此实例设置为列表框的ItemSource。这样,当用户点击列表框中的某个位置时,您可以捕获列表框项目的SelectedIndexSelectedItem。这将帮助您确定要提取的IList集合的哪个元素,以便您可以获得您的文本或图像或任何您需要的内容。

您不需要使用Mango的外部Silverlight Toolkit使用 GestureServices TapDoubleTap等是内置的。