2011-07-25 19 views
0

こんにちはすべて私はデータテンプレートとして定義したユーザーコントロールを持っています。私がしようとしているのは、ラップパネルで結果を返し、各結果をタイル形式で返すことです。私はこれがすべて働いており、返還は適切に返されます。しかし、私は、ユーザーがクリックしたいと思うデータテンプレート項目の中にあります。 (データをスクロールするスクロール・ビューアー、クリックするボタン、選択するテキスト)/現在選択されている項目をクリックすると、その項目が選択されますが、リスト項目内のすべてがロックされている(選択できません)。Silverlightのリストボックス項目のカスタムデータテンプレート内でUI要素を選択する方法

私はここで何が欠けているかについての提案を感謝します。以下に挙げるユーザーコントロールのための私のコードであると私は、ユーザーコントロールucTilePerson.xaml内app.xaml

SearchResultTileControl.xaml

<UserControl x:Class="UI.Search.Controls.SearchResultTileControl" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:dts="clr-namespace:UI.Search.Commands" 
     xmlns:formatter="clr-namespace:UI.Search.Commands" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:qr="clr-namespace:UI.Search.Controls.tiles" 
     d:DesignHeight="300" 
     d:DesignWidth="400" 
     mc:Ignorable="d"> 

<Grid x:Name="LayoutRoot" > 
    <ListBox x:Name="ResultListBox" 
      HorizontalAlignment="Stretch" 
      Background="{x:Null}" 
      BorderThickness="0" 
      HorizontalContentAlignment="Stretch" 
      ItemsPanel="{StaticResource ResultsItemsControlPanelTemplate}" 
      ItemContainerStyle="{StaticResource ListBoxItemStyle1}" 
      ItemsSource="{Binding SearchResults[0].Results}" 
      ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
     <ListBox.ItemTemplate> 

      <DataTemplate> 
       <formatter:TypeTemplateSelector Content="{Binding}" HorizontalContentAlignment="Stretch"> 
        <!-- Person Template --> 
        <formatter:TypeTemplateSelector.PersonTemplate> 
         <DataTemplate> 
          <qr:ucTilePerson /> 
         </DataTemplate> 
        </formatter:TypeTemplateSelector.PersonTemplate> 

        <!-- Incident Template --> 
        <formatter:TypeTemplateSelector.IncidentTemplate> 
         <DataTemplate> 
          <qr:ucTileIncident /> 
         </DataTemplate> 
        </formatter:TypeTemplateSelector.IncidentTemplate> 

       </formatter:TypeTemplateSelector> 

      </DataTemplate> 
     </ListBox.ItemTemplate> 

    </ListBox> 

</Grid> 

からラップパネルを参照してどのように私はテンプレートを持っています

<UserControl x:Class="UI.Search.Controls.tiles.ucTilePerson" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:formatter="clr-namespace:UI.Search.Commands" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" 
     Width="300" 
     Height="250" 
     d:DesignHeight="250" 
     d:DesignWidth="300" 
     IsHitTestVisible="False" 
     mc:Ignorable="d"> 
<UserControl.Resources> 
    <formatter:TileHighlightConverter x:Key="FormatConverter" /> 
</UserControl.Resources> 
<Grid x:Name="PersonLayoutRoot"> 
    <Rectangle Style="{StaticResource TileBackground}" /> 
    <ScrollViewer Margin="5" BorderBrush="{x:Null}"> 
     <StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
      <StackPanel Margin="0,0,0,2" Orientation="Horizontal"> 
       <StackPanel> 
        <Image Width="48" 
          Height="48" 
          Source="/Images/search/person.png" /> 
        <TextBlock Style="{StaticResource TileRelevance}" Text="{Binding Relevance}" /> 
       </StackPanel> 
       <StackPanel> 
        <HyperlinkButton Content="{Binding Type}" Style="{StaticResource TypeHyperlinkButton}" /> 
        <TextBox Margin="0,0,0,2" 
          Style="{StaticResource TileTextBox}" 
          Text="{Binding Content[AgencyName]}" 
          TextWrapping="Wrap" /> 
       </StackPanel> 
      </StackPanel> 

      <toolkit:WrapPanel Margin="0,0,0,2"> 
       <TextBlock Style="{StaticResource TileLabel}" Text="Name" /> 
       <TextBox Margin="0,0,3,0" 
         Style="{StaticResource TileTextBox}" 
         Text="{Binding Content[lastname]}" /> 
       <TextBox Margin="0,0,3,0" 
         Style="{StaticResource TileTextBox}" 
         Text="{Binding Content[firstname]}" /> 
       <TextBox Style="{StaticResource TileTextBox}" Text="{Binding Content[middlename]}" /> 
      </toolkit:WrapPanel> 
      <Border Style="{StaticResource TileBorder}"> 
       <toolkit:WrapPanel Orientation="Horizontal"> 
        <StackPanel Style="{StaticResource TileVerticalStackPanel}"> 
         <TextBlock Style="{StaticResource TileLabel}" Text="Race" /> 
         <TextBox Style="{StaticResource TileTextBox}" Text="{Binding Content[race]}" /> 
        </StackPanel> 
        <StackPanel Style="{StaticResource TileVerticalStackPanel}"> 
         <TextBlock Style="{StaticResource TileLabel}" Text="Sex" /> 
         <TextBox Style="{StaticResource TileTextBox}" Text="{Binding Content[sex]}" /> 
        </StackPanel> 
        <StackPanel Style="{StaticResource TileVerticalStackPanel}"> 
         <TextBlock Style="{StaticResource TileLabel}" Text="DOB" /> 
         <TextBox Style="{StaticResource TileTextBox}" Text="{Binding Content[dob]}" /> 
        </StackPanel> 
       </toolkit:WrapPanel> 
      </Border> 
      <Border Style="{StaticResource TileBorder}"> 
       <toolkit:WrapPanel Orientation="Horizontal"> 
        <StackPanel Style="{StaticResource TileVerticalStackPanel}"> 
         <TextBlock Style="{StaticResource TileLabel}" Text="Involvement" /> 
         <TextBox Style="{StaticResource TileTextBox}" Text="{Binding Content[involvementtype]}" /> 
        </StackPanel> 
        <StackPanel Style="{StaticResource TileVerticalStackPanel}"> 
         <TextBlock Style="{StaticResource TileLabel}" Text="Associated Event" /> 
         <TextBox Style="{StaticResource TileTextBox}" Text="{Binding Content[0].EventAssociation}" /> 
         <HyperlinkButton Content="{Binding Content[0].EventID}" Style="{StaticResource TileResultLink}" /> 
        </StackPanel> 

       </toolkit:WrapPanel> 
      </Border> 
      <Border Style="{StaticResource TileBorder}"> 
       <ContentControl Width="256" 
           Margin="0,0,6,0" 
           BorderThickness="0" 
           Content="{Binding HitContext, 
                Converter={StaticResource FormatConverter}}" 
           FontSize="11" /> 
      </Border> 

     </StackPanel> 
    </ScrollViewer> 
</Grid> 

0123:としてセットアップ

そして私は、私は、これは、これを防止することができるリストボックススタイルで何かですが、私は肯定的ではないよ疑う私app.xamlにlistboxt ItemsPanelに

<ItemsPanelTemplate x:Key="ResultsItemsControlPanelTemplate"> 
     <toolkit:WrapPanel/> 
    </ItemsPanelTemplate> 

を使用ラップパネルへの参照を設定します。 おかげで再び任意の提案のために、

乾杯

答えて

0

は、問題を発見しました。 usercontrol(ucTilePerson)内で、私はIsHitTestVisibleをfalseに設定しました。ユーザーコントロールレベルで設定されているので、すべての要素がこのプロパティを継承していました。なぜなら、何かのマウスイベントを発生させないという効果が得られたからです。

なぜ私はそれが1日遅れていたか以外には何も設定していません。

乾杯

関連する問題