C# 与WPF的命令绑定
我完全不知道这件事,所以我真的很难理解这是怎么回事 基本上我有一个我使用的主页,在XAML中我创建了一个菜单C# 与WPF的命令绑定,c#,wpf,C#,Wpf,我完全不知道这件事,所以我真的很难理解这是怎么回事 基本上我有一个我使用的主页,在XAML中我创建了一个菜单 我拥有的是一个文档(DummyDoc),其中包含一个文本框,我正试图将find命令发送到该文本框 我尝试了各种方法并用谷歌搜索了它,但我似乎无法让它对我起作用,需要一些帮助来推动正确的方向 主要形式 <Window> xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
我拥有的是一个文档(DummyDoc),其中包含一个文本框,我正试图将find命令发送到该文本框 我尝试了各种方法并用谷歌搜索了它,但我似乎无法让它对我起作用,需要一些帮助来推动正确的方向 主要形式
<Window>
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:DMC_Robot_Editor"
xmlns:local="clr-namespace:DMC_Robot_Editor.GUI"
<Menu>
<MenuItem Header="_Edit">
<MenuItem Header="_Cut"/>
</MenuItem>
<MenuItem/>
<Grid>
<local:DummyDoc x:Name="_Editor"/>
</Grid>
</Window>
ElementName
通过查找使用指定字符串标识符的元素来查找元素
您是否在TextBox标签上添加了x:Name=“local:TextBox”
我认为你使用“本地:文本框”是自相矛盾的
对于初学者…这是用于引用命名空间中的元素类型的语法。。。。它的意思是“本地名称空间中的typeTextBox
”…它在您使用的上下文中无效(或者更确切地说不是相同的意思)…您应该只分配一个“identifier”字符串
所以
CommandTarget="{Binding ElementName=textboxFind}"
这样更合适
更新(根据澄清的问题): 您应该在菜单项中指定一个“命令”,当您选择该菜单项时,该命令将被触发 然后,如果TextEditor具有焦点(…因此是命令目标…),那么它应该会看到Cut命令 我希望Avalon编辑器能够处理众所周知的“应用程序命令”,即剪切、复制、粘贴等
<MenuItem Header="_Cut" Command="ApplicationCommands.Cut">
让我重新表述这个问题,因为我可能问的方式不对,我知道我做错了什么,但不知道如何正确提问。你应该在菜单项中指定“命令”…然后如果文本编辑器有焦点(…因此是命令目标…),那么它应该看到剪切命令。。。。
partial class DummyDoc:DocumentContent
{
public Editor TextBox{get;set;}
private void Is_VisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (sender is Editor)
this.TextBox = sender as Editor;
if ((VisibilityChanged != null) && (TextBox != null))
raiseupdated(TextBox, new FunctionEventArgs(this.TextBox.Text));
}
}
CommandTarget="{Binding ElementName=textboxFind}"
<TextBox x:Name="textboxFind" ..... />
<MenuItem Header="_Cut" Command="ApplicationCommands.Cut">