WPF Command
및 CommandParameter
에 대해 다른 Datacontext
을 사용할 수 있습니까? Command 및 CommandParameter에 대한 다른 Datacontext
<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>
나는 ListGrid 다른 뷰 모델까지 버블의
Binding
로컬 뷰 모델에
Command
합니다. 그러나
CommandParameter
은
ContentControl
이어야합니다. LOG는 말하고있다 :
이
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')
완벽한을 사용할 수는, 대단히 감사합니다 코드 숨김 당신의 UserControl의이을 추가하는 것입니다! –