【问题标题】:What does Value="{Binding}" do? [duplicate]Value="{Binding}" 有什么作用? [复制]
【发布时间】:2011-09-09 16:22:38
【问题描述】:

可能重复:
WPF Binding Syntax Question

我一直在使用这种语法,我以为我知道它做了什么,但现在我不知道。

Value="{Binding}"

我在网上搜索这种语法时遇到了很大的麻烦,因为当然会忽略大括号。

例如:

<Style x:Key="GridCell" TargetType="{x:Type TextBlock}">
    <Setter Property="ToolTip" Value="{Binding}}"/>
</Style>

当作为样式应用于文本块时,会将工具提示绑定到文本块内容(文本)绑定到的未格式化(未转换)属性。

【问题讨论】:

    标签: wpf xaml data-binding


    【解决方案1】:

    它的数据绑定值到窗口根或控件的DataContext

    【讨论】:

    • 我想我明白你在说什么。有没有办法显式绑定到控件的 DataContext?如果你不喜欢你的父母设置的数据上下文,并且你想绑定到你父母的父母的 DataContext 怎么办?
    • 我认为这超出了这个问题的范围。你应该问另一个人。
    • 我还是一头雾水。绑定到 DataContext 上的 WHAT?只是一些随机属性?一些“默认”属性?整个 DataContext 对象?如果我有一个 FileInfo 对象作为 DataContext,并且我有一个 TextBlock,并且我绑定了 Text="{Binding}" 文本中会包含什么以及为什么?
    【解决方案2】:

    它绑定到当前的Datacontext。

    我建议你看看WPF Databinding Cheat Sheet。应该是一个方便的参考。

    【讨论】:

      【解决方案3】:

      语法{Binding &lt;something&gt;} 使用Binding markup extension 创建一个新的Binding

      具体来说,{Binding} 使用空路径创建 Binding 对象。由于路径是相对于当前的DataContext,这意味着绑定到它。

      【讨论】:

        【解决方案4】:

        documentation{Binding} 称为“空绑定语法”。它将属性绑定到 DataContext 引用的整个对象。

        可能值得注意的是,控件继承了其父元素的 DataContext(除非您直接设置它)。

        【讨论】:

          【解决方案5】:

          这是 WPF 将数据链接到控件的方式。有关详细信息,请参阅 MSDN。 http://msdn.microsoft.com/en-us/library/ms752347.aspx

          【讨论】:

          • 我不是这里的“元”——我想确切地知道使用普通空绑定绑定到什么。
          • 很抱歉,您不知道您是在询问空绑定或只是询问一般绑定问题。似乎空绑定部分已经得到解答,但正如他们所说,如果设置它只会绑定到当前上下文。
          【解决方案6】:

          这完全取决于您在元素树中的哪个位置使用它。默认情况下,它表示当前DataContext。但是如果你已经在你的 ListBox 里面,那么它就意味着 ListBox 的 DataContext。这与根/主数据上下文不同。

          【讨论】:

            猜你喜欢
            • 2015-09-17
            • 1970-01-01
            • 2017-05-26
            • 2015-07-23
            • 1970-01-01
            • 1970-01-01
            • 2013-07-24
            • 2015-05-03
            • 2018-05-22
            相关资源
            最近更新 更多