我对 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 命令不是通过上下文菜单调用的。
我如何在此处重用我的页面(通过列表框)中的视图模型实例?
提前感谢比约恩