Tôi có một điều khiển, trên điều khiển đó là một lệnh gọi là SaveToClipboardCommand. Tôi muốn ràng buộc một lệnh mục trình đơn ngữ cảnh để lệnh đó để khi tôi nhấp vào nó, lệnh sao chép vào clipboard được thực hiện.Ràng buộc từ mục menu ngữ cảnh để kiểm soát cha mẹ
<Control x:Name="Control">
<Control.ContextMenu>
<ContextMenu>
<MenuItem Command={"Bind to SaveToClipboardCommand here"} Header="Some Header" />
</ContextMenu>
</Control.ContextMenu/>
</Control>
Việc kiểm soát (vì lập luận) được định nghĩa như thế này:
partial class Control
{
private ICommand _saveToClipboard;
public ICommand SaveToClipboardCommand
{
get
{
if (_saveToClipboard == null)
{
_saveToClipboard = new RelayCommand(
x=> SaveToClipboard());
}
return _saveToClipboard;
}
}
}
Tôi đã cố gắng sử dụng các ràng buộc RelativeSource và ElementName dựa nhưng cả hai đều thất bại. Là những gì tôi đang cố gắng để làm thậm chí có thể?
Cảm ơn!
Bạn đã thử dùng RelativeSource nào? Bạn đã thử FindAncestor chưa? –
'{Binding RelativeSource = {RelativeSource Mode = FindAncestor, AncestorType = {x: Type Control}}, Path-SaveToClipboardCommand}' – TerrorAustralis
Bạn đang cố gắng liên kết với trình đơn ngữ cảnh của một điều khiển với một lệnh được xác định trong điều khiển? Nếu vậy thì bạn nên thực hiện ràng buộc trong XAML của điều khiển đó và đặt DataContext của nó thành 'this'. Nếu bạn đang ràng buộc với các thành viên lệnh bên ngoài phạm vi của 'Kiểm soát' lớp thì DataContext nên có nó để nó được giải quyết. – whoisthis