2012-08-14 142 views
0

在我的windows phone應用程序中,我在一個頁面中有一個LoadMore按鈕。加載更多按鈕在的<phone:PhoneApplicationPage.Resources>部分定義。我在該頁面中有兩個列表框,併爲這兩個列表框使用相同的樣式。當我點擊loadmore按鈕時,如何識別列表框中引發事件的LoadMore按鈕?找到哪個按鈕被點擊

<phone:PhoneApplicationPage.Resources> 
     <Style x:Key="ListBoxStyle" TargetType="ListBox"> 
      <Setter Property="Background" Value="Transparent"/> 
      <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/> 
      <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/> 
      <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Visible"/> 
      <Setter Property="BorderThickness" Value="0"/> 
      <Setter Property="BorderBrush" Value="Transparent"/> 
      <Setter Property="Padding" Value="0"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="ListBox"> 
         <ScrollViewer x:Name="ScrollViewer"> 
          <StackPanel> 
           <ItemsPresenter/> 
            <Button Content="Load More..." Name="btnLoadMore" Visibility="Visible" Background="White" Foreground="#FF176DDC" Click="btnLoadMore_Click"></Button> 
          </StackPanel> 
         </ScrollViewer> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </phone:PhoneApplicationPage.Resources> 

如何找到單擊列表框的按鈕?

+0

您可能應該查看'btnLoadMore_Click'事件處理程序中的sender參數。將其重新轉換爲按鈕並查看它的名稱。可能會在名稱中添加某種後綴,因爲不能有雙重名稱。 – 2012-08-14 08:31:43

+0

@Gerald Versluis:我試過但沒用。每次我得到相同的名字。即btnLoadMore。然後我刪除按鈕名稱並嘗試,我沒有名字。 – 2012-08-14 10:13:14

回答

1

在我看來,這種功能在風格上是錯誤的方法。嘗試將ListBoxButton放入UserControl,它本身暴露出加載更多數據的事件。 在內部您然後處理該按鈕的事件Click並提高UserControlLoadMore事件。