2014-04-08 3 views
1

У меня возникли те же проблемы в моем проекте Windows Phone:XamlParseException при попытке связать подкласс Loaded обработчика событий

XamlParseException when adding event handler in XAML

http://social.msdn.microsoft.com/Forums/vstudio/en-US/7624b2fc-0dea-415f-a71d-1739020d9d2e/xamlparseexception-when-trying-to-bind-subclass-loaded-event-handler?forum=wpf

A

B

Однако, похоже, у моего обработчика есть правильная подпись?

Даже незнакомец, я сделал то же самое с событием UIElement_Tap, на другой странице, и он отлично работает.

MainPage.xaml

<v:PageBase 
    x:Class="PhoneApp1.Views.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:v="clr-namespace:PhoneApp1.Views" 
    mc:Ignorable="d" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}" 
    SupportedOrientations="Portrait" Orientation="Portrait" 
    shell:SystemTray.IsVisible="True"> 

    <Grid x:Name="LayoutRoot" Background="Transparent"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <ItemsControl Grid.Row="0" 
         Loaded="ItemsControl_Loaded" 
         Margin="0,0,0,120"> 

      <TextBlock Text="Item1"/> 
      <TextBlock Text="Item2"/> 
      <TextBlock Text="Item3"/> 

     </ItemsControl> 

     <ItemsControl Grid.Row="1" 
         Loaded="ItemsControl_Loaded" 
         Margin="0,120,0,0"> 

      <TextBlock Text="Item1"/> 
      <TextBlock Text="Item2"/> 
      <TextBlock Text="Item3"/> 
      <TextBlock Text="Item4"/> 

     </ItemsControl> 

    </Grid> 

</v:PageBase> 

MainPage.xaml.cs

namespace PhoneApp1.Views 
{ 
    public partial class MainPage : PageBase 
    { 
     // Constructor 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

PageBase.cs

using Microsoft.Phone.Controls; 

namespace PhoneApp1.Views 
{ 
    // Common code across pages. 
    public class PageBase : PhoneApplicationPage 
    { 
     protected virtual void ItemsControl_Loaded(object sender, System.Windows.RoutedEventArgs e ) 
     { 
      //... 
     } 
    } 
} 

Я знаю, что я мог бы переопределить метод и вызывать базовый тип в моем MainPage, но это побеждает цель иметь общую базу, нет?

ответ

0

Это, как я в конечном итоге фиксации этого: Дал ItemsControl имя и проводной до события в конструктор MainPage:

itemControl1.Loaded + = base.ItemsControl_Loaded;

0

Попробуйте заменить System.Windows.RoutedEventArgs на EventArgs

 Смежные вопросы

  • Нет связанных вопросов^_^