对不起伙计们,我早些时候已经问过这个问题,但无法找到答案。做了一个编辑,看看是否会碰到它,但这似乎不起作用。所以这是问题的最后一次尝试
我似乎无法弄清楚如何在列表框中获取特定文本块的值。首先,这是代码:
<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作为文本块,然后获取文本的值。但我确实不想要使用这种方法。
答案 0 :(得分:0)
我看到你使用了文本块和图像的绑定。那么为什么不使用(如果你还没有这样做)一个IList
类的实例来保存关于它们的信息呢?然后将此实例设置为列表框的ItemSource
。这样,当用户点击列表框中的某个位置时,您可以捕获列表框项目的SelectedIndex
或SelectedItem
。这将帮助您确定要提取的IList集合的哪个元素,以便您可以获得您的文本或图像或任何您需要的内容。
您不需要使用Mango的外部Silverlight Toolkit
使用 GestureServices 。 Tap
,DoubleTap
等是内置的。