wpf expander 设置新的 header 模板后,无法绑定数据

用九思维探索 2016-09-07 09:45:02
<Window.Resources>
<DataTemplate x:Key="listitemExpander">
<Expander Header="{Binding XPath=ID}" Margin="0" Grid.Row="1" VerticalAlignment="Top" IsExpanded="True" HorizontalAlignment="Stretch" MouseLeftButtonDown="Expander_MouseLeftButtonDown">
<Expander.HeaderTemplate>
<DataTemplate>
<Grid>
<TextBlock HorizontalAlignment="Right" Margin="0,0,-55.147,-15.837" TextWrapping="Wrap" Text="{Binding XPath=ID}" VerticalAlignment="Stretch" d:LayoutOverrides="Height"/>
<CheckBox Content="" HorizontalAlignment="Right" Margin="0,0,-99.147,-1.837" VerticalAlignment="Bottom"/>
</Grid>
</DataTemplate>
</Expander.HeaderTemplate>
.....
以上是简要的代码
我做一个listbox ,listbox 前台代码绑定如下 I
temTemplate="{StaticResource listitemExpander}"
后台listbox绑定XmlDataProvider,
上面绑定的源是成功的,我做过测试.
现在长话短说,如果将<Expander.HeaderTemplate>这个节点内的内容全部删除, 模板内因有<Expander Header="{Binding XPath=ID}" 这个绑定,所以Expander的Header显示绑定数据,但是如果将 Header="{Binding XPath=ID}"删除,
在<TextBlock Text="{Binding XPath=ID}" ...>这里绑定 ID,则怎么也不显示数据
我想将<TextBlock Text="{Binding XPath=ID}" ...> 直接改为<TextBlock Text="{Binding /*这里绑定Expander的header,反正header也被隐藏了不显示*/}" ...>却不知道该怎么在这个模板中绑定 expander的header,求高手解答.先谢谢了.
...全文
524 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
用九思维探索 2016-09-08
  • 打赏
  • 举报
回复
还有要谢谢斑斑的友情帮助
用九思维探索 2016-09-08
  • 打赏
  • 举报
回复
结帖,问题解决办法 <expander Header="{binding}"...... 改这么一句就行了.... 下面是参考连接 https://codeoverload.wordpress.com/2012/03/04/wpf-expander-headertemplates-dont-forget-the-binding/
用九思维探索 2016-09-07
  • 打赏
  • 举报
回复
你好,不好意思,还要问下,我如下设置 <Expander.HeaderTemplate> <DataTemplate> <Grid> <TextBlock 中的 Text="{Binding XPath=ID,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBoxItem}}" expander的header 依然没有显示,请问是不是我设错了哪里?
  • 打赏
  • 举报
回复
用relativeSource 父类型设置为ListBoxItem ,类似: {Binding XPath=DataContext.ID,RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ListBoxItem}
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 ### Home Bus 协议概述 Home Bus协议,亦被称为家庭总线协议,是由日本研发的一种专门应用于家庭自动化领域的通信标准。该协议在商用空调及其他家用电器的远程操控方面具备广泛的应用范围。借助Home Bus协议,设备之间能够达成高效的通信,使用户能够更加便利地监管家庭中的各类智能设备。 ### ECHONET协议及其背景 Home Bus协议与ECHONET协议存在紧密的联系,实际上,ECHONET代表了一种更为具体的技术规范,其目的在于为家庭自动化领域构建一个开放且统一的通信标准。ECHONET由ECHONET财团负责维护与支持,该组织致力于推动该协议的进步与标准化进程。ECHONET协议的应用范围不仅限于家庭环境,还包括了楼宇自动化以及工业自动化等多个领域。 #### ECHONET的历史版本及修订记录 - **Version 1.0**:发布于2000年3月18日,同年7月对联盟成员公开,最终于同年对公众发布。 - **Version 1.01**:在2001年5月23日,向联盟成员发布,主要进行了补充和勘误工作。 - **Version 2.00**:2001年8月7日,针对联盟成员发布。此版本中将电源线A和电源线B两种方式合并为单一电源线方式(基于电源线A),并对相关描述进行了调整。 - **Version 2.01**:2001年11月9日,进行了一些必要的修正,包括排版错误的修正、术语的标准化等。 - **Version 2.10**:经历预览版和草案阶段后,于2002年3月7日正式对联盟成员开放。此次更主要涉及第3部分关于状态转换的描述修改。 -...
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 依据所提供的文档材料,可以归纳出以下核心知识点: 1. **TM1668控制器**:TM1668属于一种专为驱动LED显示屏设计的专用驱动集成电路,其特别适用于驱动数码管,能够达成多路LED的驱动与控制,从而提升了显示的效率。 2. **程序简化与时序控制**:程序完成了对TM1668芯片的操作,其功能已经达到最简化程度,且时序设置正确无误。在编程过程中,确保时序的准确性至关重要,因为它直接关联到设备能否正常运作。 3. **寄存器操作**:在编程实践中,运用了 uchar、int 等数据类型来表示数据及控制位。uchar或许是一种8位无符号字符类型,用于存储数据信息。同时,还涉及到对特定位的操作,比如 & 、 >> 等,这些操作用于设定或检测数据位的状态。 4. **硬件控制位**:在代码中,设定了用于控制TM1668的硬件控制位,涵盖 STB(片选信号)、CLK(时钟信号)以及 DIO(数据输入输出信号)。这些控制位的作用在于向TM1668发送指令与数据信息。 5. **数码管显示控制**:借助一系列的 send_data 函数调用,向TM1668发送控制指令与数据,以此来调控数码管的显示状态。例如,设定显示位、挑选显示地址、将数据传输至特定的数码管显示单元等。 6. **定时器中断**:在程序设计中,应用了定时器中断(INT0_timer)来周期性地执行任务。通过设定定时器的初始值(TH0和TL0),定时器在倒计时完成后会触发中断,使得程序能够以固定的频率更数码管的显示内容。 7. **中断服务程序**:设定了一个中断服务程序,在定时器中断发生时被调用。在中断服务程序...

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧