Datacontext
WPFCommand
と aを異なるものにすることは可能CommandParameter
ですか?
<UserControl>
<UserControl.Resources>
<viewmodels:ListViewGridBaseViewModel x:Key="vm" />
</UserControl.Resources>
<Grid>
<ContentControl x:Name="currentContent"
Content="{Binding Path=ListGrid}" >
<ContentControl.ContextMenu>
<ContextMenu >
<MenuItem Command="{Binding Path=Save}"
CommandParameter="{Binding ElementName=currentContent}"
DataContext="{StaticResource ResourceKey=vm}"
Header="Save">
<MenuItem.Icon>
<Image Source="{StaticResource ResourceKey=Save}"
Height="16"
Width="16"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="{Binding Path=Revert}"
DataContext="{StaticResource ResourceKey=vm}"
Header="Revert">
<MenuItem.Icon>
<Image Source="{StaticResource ResourceKey=Revert}"
Height="16"
Width="16"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</ContentControl.ContextMenu>
</ContentControl>
</Grid>
</UserControl>
Binding
ListGrid を別の Viewmodel にバブルアップしCommand
、ローカルの ViewModel にバブルアップしたい。しかし、CommandParameter
は である必要がありContentControl
ます。ログは言っています:
System.Windows.Data Error: 4 : Cannot find source for binding with
reference 'ElementName=currentContent'. BindingExpression:(no path);
DataItem=null; target element is 'MenuItem' (Name='');
target property is 'CommandParameter' (type 'Object')