2014-07-09 53 views
0

我即將製作一個具有多個文本塊的控制頁面。 每個文本塊將被「鏈接」到另一個頁面,如何使用XAML綁定WindowsPhone 8上的多個事件處理程序?

,這裏是我的XAML部分

.........<phone:LongListSelector x:Name="settingSelector" ItemsSource="{Binding}"> 
       <phone:LongListSelector.ItemTemplate> 
        <DataTemplate> 
         <StackPanel toolkit:TiltEffect.IsTiltEnabled="True" Tap="{Binding TapMethod, Mode=TwoWay}" > 
          <TextBlock Text="{Binding SetTitle}" FontSize="43" /> 
          <TextBlock Text="{Binding SetDescription}" FontSize="19" Margin="0 0 0 10" /> 
         </StackPanel> 
        </DataTemplate> 
       </phone:LongListSelector.ItemTemplate> 
      </phone:LongListSelector>.......... 

當我背後試試這個代碼:

.........public class SettingProperty 
    { 

     public string SetTitle{get; set;} 
     public string SetDescription{get; set;} 
     public string TapMethod{get; set;} 
     public SettingProperty(string setTitle, string setDescription, string tapMethod) 
     { 
      SetTitle = setTitle; 
      SetDescription = setDescription; 
      TapMethod = tapMethod; 
     } 
    } 

    List<SettingProperty> DataSetting() 
    { 
     List<SettingProperty> settingCollection = new List<SettingProperty>(); 
     settingCollection.Add(new SettingProperty("Saldo", "cek saldo", "saldo_Tap")); 
     return settingCollection; 
    } 

    private void saldo_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
    { 
     NavigationService.Navigate(new Uri("/saldo.xaml", UriKind.Relative)); 
    }.......... 

我直接部署他們到我的L520,我我很確定罪魁禍首是我的堆棧面板上的「Tap」綁定,當我忽略它時,代碼就起作用了。 我錯過了什麼,或者我的整個方法錯了嗎?

+0

爲什麼一個字符串被綁定到點擊事件? – bit

回答

1

我們對「Tap」事件的理解是錯誤的。

你這裏有兩種選擇:

  • 要麼你明確指定一個方法名(不是一個字符串)作爲點擊事件的事件處理程序。例如:

    點擊=「MyControl_Tap」 在這種情況下,你必須有背後

  • 在控件的代碼MyControl_Tap法,因爲你似乎可以用MVVM模式,你必須創建一個ICommand的,然後包括你的整個的StackPanel的按鈕,像這樣:

    ...<DataTemplate> 
    <Button Command="{Binding MyCommandProperty}"> 
            <StackPanel toolkit:TiltEffect.IsTiltEnabled="True" > 
             <TextBlock Text="{Binding SetTitle}" FontSize="43" /> 
             <TextBlock Text="{Binding SetDescription}" FontSize="19" Margin="0 0 0 10" /> 
            </StackPanel> 
    </Button> 
    

    ...

+0

感謝您的回答,我有你的主意, 但我最終使用字符串來自:string selectedEvent =((SettingProperty)((FrameworkElement)sender).DataContext).TapMethod; – RJJatson

相關問題