3
我想在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} –
感謝您抽出寶貴的時間,但我不認爲這就是我所追求的。這是一個模板!在你的例子中,你正在指定要綁定的對象的名稱。如果我這樣做,那麼我將需要爲手風琴控制中的每個項目設置一個單獨的模板。 另外,我不知道我需要一個類型轉換可言,因爲作爲陳述的類型已經是「能見度」。 –