C# 与ResourceDictionary中的ElementName绑定
正如文档所述,ResourceDictionary不保留任何名称空间名称,因此我无法使用ElementName进行绑定。如何在WindowsPhone框架中绑定到textBox,我看不到任何解决方案,也不想使用AttachedPropertyC# 与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> <
<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,那么我们应该使用它们,如果它们是好的实践。也许我错了。