【问题标题】:What does exactly <Expander Header="{Binding}"> do?<Expander Header="{Binding}"> 究竟是做什么的?
【发布时间】:2014-12-02 06:39:11
【问题描述】:

在创建简单的自定义扩展器时,我遇到了 IT 内部的项目无法绑定的问题。我在这个链接上找到了修复:

http://codeoverload.wordpress.com/2012/03/04/wpf-expander-headertemplates-dont-forget-the-binding/

碰巧处理了完全相同的问题,但我从中理解的是“幸运地发现了这个,不确定它为什么会起作用;D”

我现在的问题是:为什么添加 Header={Binding} 可以解决问题。事实上,绑定不起作用,这似乎是由于 DataContext,但我不明白这应该如何解决它。

感谢您的解释;希望这不是重复的>.

【问题讨论】:

    标签: c# .net mvvm binding expander


    【解决方案1】:

    来自docs

    获取或设置用于每个控件标题的数据。

    该对象是针对 DataContext 或纯文本或其他任何内容的绑定。

    我敢打赌,实现会查看该值是否为文本,如果是,则将其放入默认标题模板中,这可能很简单

    <TextBlock Text="{Binding}" />
    

    如果您为标头声明模板,DataContext 将是您分配给 Header 属性的任何内容。 Expander 的DataContext 显然不会自动流向标题模板。

    【讨论】:

    • 非常感谢,下次会教我先看文档:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多