Tengo un control, en ese control hay un comando llamado SaveToClipboardCommand. Quiero vincular un comando de elemento de menú contextual a ese comando para que cuando haga clic en él, se ejecute el comando copiar al portapapeles.Encuadernación desde el elemento de menú contextual al control principal
<Control x:Name="Control">
<Control.ContextMenu>
<ContextMenu>
<MenuItem Command={"Bind to SaveToClipboardCommand here"} Header="Some Header" />
</ContextMenu>
</Control.ContextMenu/>
</Control>
El control (por motivo de la discusión) se define así:
partial class Control
{
private ICommand _saveToClipboard;
public ICommand SaveToClipboardCommand
{
get
{
if (_saveToClipboard == null)
{
_saveToClipboard = new RelayCommand(
x=> SaveToClipboard());
}
return _saveToClipboard;
}
}
}
He intentado usar fijaciones basadas RelativeSource y ElementName pero ambos están fallando. ¿Lo que estoy tratando de hacer es posible?
Gracias!
¿Qué RelativeSource ha intentado? ¿Has probado FindAncestor? –
'{Binding RelativeSource = {RelativeSource Mode = FindAncestor, AncestorType = {x: Type Control}}, Path-SaveToClipboardCommand}' – TerrorAustralis
¿Está intentando vincular el menú contextual de un control a un comando definido dentro del control? Si es así, entonces debes hacer el enlace en el XAML de ese control y establecer su DataContext en 'esto'. Si está vinculando al miembro del comando fuera del alcance de la clase 'Control', entonces DataContext debe tenerlo para que se resuelva. – whoisthis