2014-02-08 41 views
0

我正在構建應用程序,需要在單擊列表框中的項目時導航到另一個頁面。我嘗試了很多,但無法做到。點擊時沒有任何反應。請參閱我的xaml和cs文件,並檢查我的編碼是否有問題。單擊列表框中的項目導航到新頁面

我的XAML是:

<ListBox Name="listBox1" SelectionChanged="listBox1_SelectionChanged" Height="676" VerticalAlignment="Bottom"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
       <Button> 
       <Button.Content> 
        <ScrollViewer HorizontalScrollBarVisibility="Auto" Height="80" Width="400"> 
         <StackPanel Orientation="Horizontal" Margin="0,0,0,0"> 
          <Image Source="{Binding ImageBind }" Height="80" Width="120"/> 
          <StackPanel Orientation="Vertical"> 
           <TextBlock Text="{Binding Path=News_Title}" TextWrapping="Wrap"></TextBlock> 
           <!-- <TextBlock Text="{Binding Path=News_Description}" TextWrapping="Wrap"></TextBlock>--> 
           <TextBlock Text="{Binding Path=Date_Start}" TextWrapping="Wrap" ></TextBlock> 
          </StackPanel> 
         </StackPanel> 
        </ScrollViewer> 
       </Button.Content> 
      </Button> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

我的CS文件:

private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    // If selected index is -1 (no selection) do nothing 

    if (listBox1.SelectedIndex == -1) 
     return; 

    // Navigate to the new page 
    NavigationService.Navigate(new Uri("/NewsDetails.xaml?selectedItem=" + listBox1.SelectedIndex, UriKind.Relative)); 

    // Reset selected index to -1 (no selection) 
    listBox1.SelectedIndex = -1; 
} 
+1

我認爲你可以添加IsHitTestVisible =「False」屬性給Button。所以listBox1_SelectionChanged方法可以被執行。 –

+0

爲什麼你把所有這些東西放在按鈕內容中 –

+0

刪除一旦這個選擇從xaml改變了事件,並進一步添加此事件...試試這可以幫助你 –

回答

1

我想你可以添加IsHitTestVisible的屬性= 「false」 表示按鈕。所以listBox1_SelectionChanged方法可以被執行。

相關問題