2012-03-28 11 views
0

私は今ここで専門家に尋ねることができますが、しばらくこのままで止まっています。ListBoxとselectedItem/Eventsの中のListBox

まずXAMLは:あなたがXAMLから見ることができるよう

<ListBox Grid.Column="0" Tap="Some_Tap" SelectionChanged="Some_SelectionChanged"> 

        <ListBox.ItemTemplate> 
         <DataTemplate> 

          <!-- the panel which covers a complete list item --> 
          <StackPanel Orientation="Vertical"> 

           <!-- start and end time for the travel route--> 
           <Grid HorizontalAlignment="Center"> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="100"/> 
             <ColumnDefinition Width="100"/> 
             <ColumnDefinition Width="100"/> 
             <ColumnDefinition Width="100"/> 
            </Grid.ColumnDefinitions> 

            <Grid.RowDefinitions> 
             <RowDefinition/> 
             <RowDefinition/> 
            </Grid.RowDefinitions> 


            <!-- some textblock items, removed to keep this simple --> 
           </Grid> 

           <!-- list box for images --> 
           <ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" ItemsSource="{Binding Thumbs}" HorizontalAlignment="Center" Margin="0,10,0,50"> 
            <ListBox.ItemsPanel> 
             <ItemsPanelTemplate> 
              <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" /> 
             </ItemsPanelTemplate> 
            </ListBox.ItemsPanel> 

            <ListBox.ItemTemplate> 
             <DataTemplate> 
              <StackPanel Orientation="Vertical" HorizontalAlignment="Center"> 

               <Image Source="{Binding Image}" HorizontalAlignment="Center"/> 
               <TextBlock Text="{Binding Text}" HorizontalAlignment="Center" FontWeight="{Binding FontWeightForText}"> 
                <TextBlock.Foreground> 
                 <SolidColorBrush Color="{StaticResource PhoneForegroundColor}"/> 
                </TextBlock.Foreground> 
               </TextBlock> 

              </StackPanel> 
             </DataTemplate> 
            </ListBox.ItemTemplate> 

           </ListBox> 

          </StackPanel> 
         </DataTemplate> 

        </ListBox.ItemTemplate> 

       </ListBox> 

だから私は、別のListBoxのデータテンプレート内のリストボックスを持っています。私はTap & SelectionChangedイベントを有線接続しています。

問題:

  1. 私は内側のリストボックスがカバーするエリアをクリックすることはできません、タップまたは選択は、外側のリストボックスのイベントがouterlistboxのために解雇されていない変更しました。

  2. 内部リストボックスのタップと選択変更のイベントもワイヤリングできますが、この内部リストボックスのどの項目が選択されているのかをどのように知ることができます。

help ??

-A

+0

(この状況では内側のリストのための)代わりにItemsControlを使用し、リスト内の項目の選択を必要としない場合は、C#のコードは、XAMLを変更しませんでした。以下のKu6oprが答えたように、Inner ListBoxがItemsControlに変更されました。 –

答えて

1

あなたは少しXAMLを変更することで解決

+0

これはとてもうまくいきましたが、私は疑問に思っていました。私はちょうど内側のListBoxをItemsControlに変更し(XAMLでタグを変更した)、それが機能しました。 –

0

だけ内側のListBoxコントロールIsEnabled = falseを設定し、外側のタップイベントが実行を開始します!

+0

私はそれを行うことができますが、リストボックスは無効なモードのための別のテンプレートを持っているので、リストボックスは醜いです。私がこの解決策をとるならば、私は無効モードの新しいスタイルを定義する必要もあります。 –

+0

Trueですが、ListBoxテンプレートをalltogetherで編集して無効状態のvisualstateを削除するだけです。 :) –