2010-06-23 6 views
0

을 발사하지를 IEnumerable은 데이터 원본입니다. ListBoxItem을 클릭하면 해당 객체에 대한 액세스가 필요하므로 일부 데이터를 가져 와서 다른 창을 표시 할 수 있습니다. 그것은 멀리이 이벤트를 날려 버릴 수있는 내 스타일 중 일부는 가능 여기에PreviewMouseLeftButtonDown 나는 목록 상자가

내옵니다의 XAML

  `<ListBox Name="listBox1" Margin="0" Width="1010" Height="275" BorderThickness="0" BorderBrush="{x:Null}" Cursor="Arrow" HorizontalAlignment="Center" VerticalAlignment="Top" SelectionMode="Single" FontFamily="DIN" ScrollViewer.HorizontalScrollBarVisibility="Hidden" Focusable="False" IsHitTestVisible="False" IsTextSearchEnabled="False" >` 

      <ListBox.ItemContainerStyle> 
       <Style TargetType="{x:Type ListBoxItem}"> 
        <EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListBox_MouseLeftButtonDown"></EventSetter> 
       </Style> 
      </ListBox.ItemContainerStyle> 
      <ListBox.ItemTemplate> 
       <DataTemplate DataType="{x:Type local:Offer}"> 
        <StackPanel Margin="0" Width="200" Height="275" Background="Black" Name="sp"> 
         <Image Source="{Binding Image}" Width="200" Height="131" Margin="0"></Image> 
         <TextBlock Padding="5" Background="Black" Text="{Binding Name}" Foreground="White" FontFamily="DIN medium" FontWeight="Bold" FontSize="16" Width="200" Margin="0"></TextBlock> 
         <TextBlock Padding="5,0,5,0" Background="Black" Text="{Binding Date}" Foreground="White" FontFamily="DIN medium" FontWeight="Bold" FontSize="14" Width="200" Margin="0"></TextBlock> 
         <TextBlock Padding="5" Background="Black" Text="{Binding Description}" Foreground="White" FontFamily="DIN light" FontSize="16" Width="200" Margin="0" TextWrapping="WrapWithOverflow"></TextBlock> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
      <ListBox.ItemsPanel> 
       <ItemsPanelTemplate> 
        <VirtualizingStackPanel Background="Black" CanHorizontallyScroll="True" CanVerticallyScroll="False" FlowDirection="LeftToRight" Margin="0" Orientation="Horizontal" Width="1010" Height="275"></VirtualizingStackPanel> 
       </ItemsPanelTemplate> 
      </ListBox.ItemsPanel> 
     </ListBox>`$ 

기타 관련 정보

   CurrentItems = (from offerCatType in offerRes.OfferCategory 
             where offerCatType.type == Type 
             from offers in offerCatType.Offer 
             where new  DateTime(Convert.ToDateTime(offers.startDate).Year, 
    Convert.ToDateTime(offers.startDate).Month, 1) <= MonthYear && Convert.ToDateTime(offers.endDate) >= MonthYear 
             select new Offer 
             { 
              Name = offers.name, 
              Description = offers.description, 
              Date = String.Format("{0:dd/MM/yyyy}",  Convert.ToDateTime(offers.startDate)) + " to " + String.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(offers.endDate)), 
              ClickThruUrl = offers.ChannelInfo.refClickThroughLink, 
              ReferenceID = offers.ChannelInfo.refId, 
              Image = offers.ChannelInfo.refLink 
             } 
         ); 



     listBox1.ItemsSource = CurrentItems; 
     protected void ListBox_MouseLeftButtonDown(object sender, RoutedEventArgs e) 
     {} 

이다인가? 나는 오늘 일찍 작업을하고, 몇 가지 스타일링 항목을 수정했다가, 클릭 코드가 작동하지 않게되었습니다.

답변

0

진정한 대신 목록 상자에 대한 허위 당신이 얻을 것이다 마우스 이벤트에 IsHitTestVisible 속성을 설정합니다.

+0

이것은 작동하지 않습니다. – user1034912

관련 문제