我正在尝试为silverlight 4中的accordion对象创建一个简单的标题模板。
我在AccordionItem的标题模板中添加了一个图像和一个TextBlock。我想根据页面上输入的值隐藏或显示图像。
因为我想将这些值直接绑定到实际的折叠项,我创建了一个新类型'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的文本和Image的Visibility绑定到底层AccordionItemWithIcons对象中设置的值吗?我花了几个小时搞乱不同的DataContext和来源,似乎无法让它工作!
我不知道是否有助于解释我想要实现的目标,但最终在后面的代码中我希望能够说出类似的内容(如下所示),以显示或隐藏标题模板中的图标
FirstItem.CheckIsVisible = Visibility.Visible
答案 0 :(得分:0)
为此,存在VisibilityToBooleanConverter
<BooleanToVisibilityConverter x:Key=”boolVisConverter”/>
[...]
Visibility="{Binding ElementName=anyCheckbox,
Path=IsChecked,
Converter={StaticResource boolVisConverter}}"