Словарь ресурсов вызывает исключения при вызове метода, расположенного в MainPage.

В проекте Windows Phone 7.1:

Мой словарь ресурсов выглядит так:

    <DataTemplate x:Name="ItemsTemplate">
            ...
            <StackPanel VerticalAlignment="Top"
                        ManipulationStarted="ManipulationStarted" 
                        ManipulationCompleted="ManipulationCompleted">
                <TextBlock Text="{Binding ItemDescription}" FontSize="32" Foreground="#FF3B3B3B"  Margin="5,0,0,0" FontWeight="Bold" />
                <TextBlock Text="{Binding List.ListName}" FontSize="20" Foreground="DarkMagenta" Margin="5,0,0,0" FontWeight="Bold"/>
            </StackPanel>
        </StackPanel>
    </DataTemplate>

Функции ManipulationStarted() и ManipulationCompleted() расположены в файле MainPage.xaml.cs, а ссылка на DataTemplate осуществляется через MainPage.xaml со следующим кодом:

<toolkit:LongListSelector x:Name="ListSelector" 
     ItemTemplate="{StaticResource ItemsTemplate}" 
     ItemsSource="{Binding Items}">
</toolkit:LongListSelector>

Когда я пытаюсь добавить элементы в список, я получаю исключение.

Если я помещаю DataTemplate в MainPage.xaml, все работает нормально.

Я понимаю, что проблема заключается в ссылке на функцию, но я хотел бы сначала узнать, почему невозможно найти функцию через словарь ресурсов и есть ли правильный способ сделать это или решить эту проблему каким-либо трюком.


person George Nikolaides    schedule 17.04.2012    source источник
comment
App.Application_UnhandledException (отправитель объекта, System.Windows.ApplicationUnhandledExceptionEventArgs e) Строка 150 + 0x5 байт C# {Неопределенная ошибка}   -  person George Nikolaides    schedule 18.04.2012


Ответы (2)


Проблема заключается в проводке событий. На уровне приложения нет соответствующих обработчиков событий, но я предполагаю, что они есть на уровне страницы.

person Shawn Wildermuth    schedule 17.04.2012
comment
Не заметил этого, я бы сказал, что вы поняли! - person Pedro Lamas; 18.04.2012
comment
но разве словарь ресурсов не связан на странице, как это делают библиотеки? я имею в виду, что мы используем #includes (c) или on (c#) ?? любые обходные пути? - person George Nikolaides; 18.04.2012

Разве вы не должны использовать x:Key вместо x:Name на DataTemplate?

person Pedro Lamas    schedule 17.04.2012
comment
не имеет значения .. я изменил его, когда пытался найти способ заставить это работать! - person George Nikolaides; 18.04.2012