我想在Silverlight 4如何绑定手风琴头模板
创建一个简单的头部模板手风琴对象我添加图像和一个TextBlock到的头部模板项目值AccordionItem。我想根据页面上输入的值隐藏或显示图像。
因为我想直接将这些值绑定到实际的手风琴项目,我创建了一个新类型“AccordionItemWithIcons”,该类型仅从AccordionItem继承,但添加了一些依赖属性来处理此问题。为了简洁起见,我只展示了其中的几个属性。 :)
所以,这里是我的手风琴和我的“AccordionItemWithIcons”控制。请注意,'CheckIsVisible'属性的类型为'可见性'
<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的文本和图像的可见性,以在基础AccordionItemWithIcons对象设置值是多少?我花了几个小时来讨论不同的DataContext和源代码,似乎无法让它工作!
我不知道是否有助于解释什么,我试图实现,但最终在后面的代码我希望能这样说(如下图所示),以显示或隐藏在标题上的图标模板。
FirstItem.CheckIsVisible = Visibility.Visible
好吧,你不必为这个..一个布尔值,如果两个属性您可以使用绑定:{Binding FirstItem,Path = CheckIsVisible} –
感谢您抽出宝贵的时间,但我不认为这就是我所追求的。这是一个模板!在你的例子中,你正在指定要绑定的对象的名称。如果我这样做,那么我将需要为手风琴控制中的每个项目设置一个单独的模板。 另外,我不知道我需要一个类型转换可言,因为作为陈述的类型已经是“能见度”。 –