0

申し訳ありませんが、私は以前にこの質問をしましたが、答えを理解できませんでした。それがそれをぶつけるかどうかを確認するために編集を行いましたが、それはうまくいかなかったようです。だからここに質問への最後の試みがあります

リストボックス内の特定のテキストブロックの値を取得する方法がわからないようです。まず始めに、コードは次のとおりです。

<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」のテキストを取得したいということです。

そのコードをテキストブロックに挿入し、送信者をテキストブロックとして使用することもできますが、ジェスチャを1つのテキストブロックに制限したり、グリッド内の要素ごとに繰り返したりしたくありません(多くの問題があり、不要のようです)。

編集:これが機能しない場合は、1回のタップジェスチャ(ただし、グリッド全体に対して)を実装し、それを使用してテキストブロックの値を取得することもできます。方法はありませんか?それ以外の場合は、これを行う必要があります。テキストブロックにタップを追加し、送信者をテキストブロックとして使用してから、テキストの値を取得します。しかし、私は本当にこのアプローチを使いたくありません。

4

1 に答える 1

0

テキストブロックと画像にバインディングを使用しているようです。IListでは、それらに関する情報を保持するクラスのインスタンスを (まだ使用していない場合) 使用しないのはなぜですか? 次に、このインスタンスをItemSourceリストボックスの として設定します。そうすれば、ユーザーがリストボックスのどこかをタップすると、リストボックス項目のSelectedIndexまたはをキャッチできます。SelectedItemこれにより、抽出する IList コレクションの要素を特定して、テキストや画像など、必要なものを取得できます。

また、Mango では外部からGestureServicesを使用する必要はありませんSilverlight ToolkitTapなどDoubleTapが内蔵されています。

于 2012-08-21T06:16:44.963 に答える