WPF の DataContext の問題に夢中になっています。ここの StackOverflow のコメントを読みましたが、修正できません。
次のデータ テンプレートがあります。
<DataTemplate x:Key="TodoTemplate" >
<Grid Margin="5 10 10 5" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" MaxWidth="30"/>
<ColumnDefinition Width="30" MaxWidth="30"/>
<ColumnDefinition Width="30" MaxWidth="30"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.ContextMenu>
<ContextMenu>
<MenuItem Command="{Binding Path=View}">
<MenuItem.Header>
<WrapPanel>
<Label Margin="30 0 0 0" Background="LightBlue">View Item</Label>
</WrapPanel>
</MenuItem.Header>
</MenuItem>
そして、テンプレートを再利用したいリストボックス:
<ListBox Grid.Row="4" ItemsSource="{Binding Path=Items}" Margin="10" ItemTemplateSelector="{StaticResource categoryItemSelector}" SelectedItem="{Binding Path=CurrentItem,Mode=TwoWay}" MouseDoubleClick="ListBox_MouseDoubleClick" >
</ListBox>
Listbox コードはページに埋め込まれ、このページはビュー モデル インスタンスの DataContext を設定します。
DataContext="{Binding Source={StaticResource Locator},Path=CategoryDetails}">
コンテキスト メニューはビジュアル ツリーの一部ではなく、データ コンテキストを直接再利用できないことを知りました。問題は、同じコンテキスト メニューを持つ MemoTemplate もあり、ここでビュー モデルを再利用したいということです。誰かがそれを解決するためのヒントを教えてもらえますか?
ContextService パラメータを使用して、プロキシを設定しようとしました。しかし、コンテキスト メニューから View コマンドが呼び出されません。
ここで、自分のページから (リストボックス経由で) ビュー モデル インスタンスを再利用するにはどうすればよいですか?
よろしくお願いしますビョルン