ItemsControl
項目のデータ テンプレートを含む電話アプリケーション ページ (Main.xaml) があります。
<phone:PhoneApplicationPage.Resources>
<local:MainItemsViewModel x:Key="mainItems" />
<DataTemplate x:Key="ItemTemplate">
<Grid Tap="Item_Tap">
<!--....-->
</Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
<!--...a lot of xaml...-->
<ItemsControl
x:Name="MainCanvas"
DataContext="{StaticResource mapItems}"
ItemsSource="{Binding Path=Buttons}"
ItemTemplate="{StaticResource ItemTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Width="4000" Height="4000" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
上記のように、DataTemplate には分離コード ファイル (MainPage.xaml.cs) で定義されているイベント ハンドラーがあります。
private void Item_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
FrameworkElement fe = sender as FrameworkElement;
//working with fe...
ApplicationBar.IsVisible = true;
e.Handled = true;
}
そして、すべてが完璧に機能します。しかし、データ テンプレートを別の ResourceDictionary ファイル (ResDict.xaml) に移動したいと考えています。Item_Tap イベント ハンドラーを起動できなかったため、確かにエラーが発生しました。Item_Tap メソッドを呼び出す ResourceDictionary にイベント ハンドラを含めることは可能ですか?