Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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# 与ResourceDictionary中的ElementName绑定_C#_Windows Phone 8_Windows Phone_Winrt Xaml_Windows Phone 8.1 - Fatal编程技术网

C# 与ResourceDictionary中的ElementName绑定

C# 与ResourceDictionary中的ElementName绑定,c#,windows-phone-8,windows-phone,winrt-xaml,windows-phone-8.1,C#,Windows Phone 8,Windows Phone,Winrt Xaml,Windows Phone 8.1,正如文档所述,ResourceDictionary不保留任何名称空间名称,因此我无法使用ElementName进行绑定。如何在WindowsPhone框架中绑定到textBox,我看不到任何解决方案,也不想使用AttachedProperty <Page.Resources> <TextBox x:Key="sth" x:Name="textBox" > <Interactivity:Interaction.Behaviors> <

正如文档所述,ResourceDictionary不保留任何名称空间名称,因此我无法使用ElementName进行绑定。如何在WindowsPhone框架中绑定到textBox,我看不到任何解决方案,也不想使用AttachedProperty

<Page.Resources>
<TextBox x:Key="sth" x:Name="textBox" >
    <Interactivity:Interaction.Behaviors>
        <Helpers:ExecuteCommandOnTextBoxEnterKeyBehavior
        CommandParameter="{Binding Text, ElementName=textBox}" Command="{Binding Command}"/>
    </Interactivity:Interaction.Behaviors>
</TextBox>
</Page.Resources>


谢谢你的帮助

如果您的词典位于Page.Resources内,则您的页面位于范围内,您可以引用页面上的元素。如果将其删除到单独的文件中,则页面不再在作用域中

将此视为C#类中的私有字段。它对类内的任何内容都可用。但是其他类甚至不知道它在那里,并且不能使用它。同样的概念

如果需要解决方案,则需要在保存要绑定的元素的页面资源中包含数据模板。代码隐藏的类似答案


祝你好运

谢谢您的回答,但我想将commandparameter绑定到textBox的文本。(或者相反)我看不出数据模板的意义,我应该将其应用于什么?啊,这是问题的核心。无法绑定CommandParameter。这是众所周知的事。我认为所有版本的XAML都是一样的。很抱歉必须是文字。当然它可以被绑定,就像其他属性一样。我是关于使用ElementName=textBox进行绑定的,这在字典中是不可能的,但可能有一个我不知道的workaround。如果没有,我将不得不以不那么优雅的方式来处理它/如果您追求的是优雅,那么应该通过视图模型传递值。直接绑定到元素并不是一种糟糕的做法,但它肯定不是优雅的(或最佳做法)。如果您有一个视图模型,那么通过它进行路由可以解决您的问题。起初我绑定到viewmodel,但它似乎有很多属性,这些属性实际上是命令的参数。我认为如果有CommandParameters,那么我们应该使用它们,如果它们是好的实践。也许我错了。