Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与WPF的命令绑定_C#_Wpf - Fatal编程技术网

C# 与WPF的命令绑定

C# 与WPF的命令绑定,c#,wpf,C#,Wpf,我完全不知道这件事,所以我真的很难理解这是怎么回事 基本上我有一个我使用的主页,在XAML中我创建了一个菜单 我拥有的是一个文档(DummyDoc),其中包含一个文本框,我正试图将find命令发送到该文本框 我尝试了各种方法并用谷歌搜索了它,但我似乎无法让它对我起作用,需要一些帮助来推动正确的方向 主要形式 <Window> xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

我完全不知道这件事,所以我真的很难理解这是怎么回事

基本上我有一个我使用的主页,在XAML中我创建了一个菜单


我拥有的是一个文档(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”

我认为你使用“本地:文本框”是自相矛盾的

对于初学者…这是用于引用命名空间中的元素类型的语法。。。。它的意思是“本地名称空间中的type
TextBox
”…它在您使用的上下文中无效(或者更确切地说不是相同的意思)…您应该只分配一个“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">