<expander header =“{Binding}”>究竟做了什么?</expandder>

时间:2014-10-07 18:26:39

标签: c# .net mvvm binding expander

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

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

对于完全相同的问题,会发生什么事情,但我从中理解的是“通过运气发现这一点,并不确定为什么会有效; D”

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

感谢您的解释;希望这不是重复&gt;。&lt;

1 个答案:

答案 0 :(得分:1)

来自docs

  

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

该对象是对DataContext或纯文本或其他任何东西的绑定。

我敢打赌,实现会查看值是否为文本,如果是,则将其抛出到默认的标头模板中,这可能就像

一样简单
<TextBlock Text="{Binding}" />

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