XAML - 绑定到 DataContext 并使用转换器?

Posted

技术标签:

【中文标题】XAML - 绑定到 DataContext 并使用转换器?【英文标题】:XAML - Binding to DataContext and using converter? 【发布时间】:2010-11-23 06:01:09 【问题描述】:

要绑定到 XAML 中的当前 DataContext,您可以使用:

<TextBlock Text="Binding" />

您如何在混合中使用转换器来做到这一点? 当您在路径上有属性时,以下方法有效:

<TextBlock Text="Binding MyProperty,Converter=StaticResource converter" /> 

但我不想那样做;如果您明白我的意思,我只想绑定到 datacontext 而不是 datacontext.MyProperty。

【问题讨论】:

【参考方案1】:

直接省略路径:

<TextBlock Text="Binding Converter=StaticResource converter" />

啊,等等 - 我注意到您的问题被标记为 Silverlight。这在 Silverlight 中不起作用吗?如果没有,您可能需要使用扩展语法:

<TextBlock>
    <TextBlock.Text>
        <Binding Converter="StaticResource converter" />
    </TextBlock.Text>
</TextBlock>

【讨论】:

叹息,就这么简单。我把逗号留在了那里,打破了它。第一个成功了 非常好 - 我对 Silverlight 不太了解。有时,在 WPF 中看起来非常基本的东西在 Silverlight 中完全不存在。 呵呵,我刚刚做了同样的事情。在一个愚蠢的逗号上浪费了 20 分钟。感谢上帝的 Stack Overflow。【参考方案2】:

点号还为 SL 开发者提供 DataContext Binding

<TextBlock Text="Binding Path=.,Converter=StaticResource converter" />

【讨论】:

以上是关于XAML - 绑定到 DataContext 并使用转换器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不创建 ViewModel 对象的情况下指定 DataContext (ViewModel) 类型以在 XAML 编辑器中进行设计时绑定检查? [复制]

WPF绑定到xaml中的多维数组

在此示例中,在 XAML 中使用 DataContext 和代码背后有啥区别?

C# WPF 数据绑定DataContext;Window_Loaded时进行过数据绑定,指定DataContext;触发另一事件?

DataContext 和绑定 self 作为 RelativeSource

在 WPF 中清理“设置”绑定