【发布时间】:2011-11-12 19:44:15
【问题描述】:
我正在尝试为 silverlight 4 中的手风琴对象创建一个简单的标题模板。
我在 AccordionItem 的标题模板中添加了一个图像和一个 TextBlock。我想根据页面上输入的值隐藏或显示图像。
因为我想将这些值直接绑定到实际的手风琴项,所以我创建了一个新类型“AccordionItemWithIcons”,它只是从 AccordionItem 继承,但添加了几个依赖属性来处理这个问题。为简洁起见,我只展示了其中的几个属性。 :)
所以,这是带有“AccordionItemWithIcons”控件的手风琴。请注意,属性“CheckIsVisible”的类型为“Visibility”
<Grid x:Name="LayoutRoot">
<Controls:Accordion Height="100">
<my:AccordionItemWithIcons
x:Name="FirstItem"
Content="Content Text"
Header="Header Text"
CheckIsVisible="Collapsed"
EventSummary="Summary Text"
HeaderTemplate="{StaticResource AccordionItemHeaderTemplate1}"/>
</Controls:Accordion>
</Grid>
这是标题模板。
<DataTemplate x:Key="AccordionWithIcons_HeaderTemplate1" >
<Grid >
<StackPanel Orientation="Horizontal" VerticalAlignment="Top">
<TextBlock Text="{Binding EventSummary}" />
<Image Visibility="{Binding CheckIsVisible}" Source="/Labyrinth;component/cross.png"/>
</StackPanel>
</Grid>
</DataTemplate>
谁能解释我如何将 TextBlock 的文本和 Image 的 Visibility 绑定到底层 AccordionItemWithIcons 对象中设置的值?我花了好几个小时处理不同的 DataContext 和来源,但似乎无法让它工作!
我不知道是否有助于解释我想要实现的目标,但最终在后面的代码中我希望能够说出类似(如下所示),在标题模板中显示或隐藏图标.
FirstItem.CheckIsVisible = Visibility.Visible
【问题讨论】:
标签: c# silverlight templates binding accordion