<DataTemplate x:name="MyTemplate"> <StackPanel> <TextBlock name="textblock1" Text="{Binding name}" /> <TextBlock name="textblock2" Text="{Binding Surname}" /> <StackPanel name="extrainfo" Visibility="Collapsed"> <TextBlock name="textblock3" Text="{Binding Address}" /> <TextBlock name="textblock4" Text="{Binding Phone}" /> <TextBlock name="textblock5" Text="{Binding Email}" /> </StackPanel> </StackPanel></DataTemplate>
列表框:
<ListBox name="myListBox" ItemTemplate="{StaticResource MyTemplate}" ItemsSource="{Binding UserList}" />
问题如下;当用户选择列表框中的项目时,我想通过将stackpanel的可见性设置为可见来显示其他信息.
任何想法是如何实现这一点(通过xaml或c#)?我试图改变故事板,但我没有采用这种方法.
解决方法 创建一个ItemContainerStyle,它具有默认的ContentControl以显示ItemTemplate的内容,但也具有使用Visibility设置为Collapsed定义的详细信息内容.然后,更新“Selected”VisualState,以便将详细信息面板的Visibility设置为Visible:<VisualState x:name="Selected"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.Targetname="ContentContainer"> <discreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneAccentBrush}"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.Targetname="Details"> <discreteObjectKeyFrame KeyTime="0" Value="Visibile"/> </ObjectAnimationUsingKeyFrames> </Storyboard></VisualState>...<StackPanel> <ContentControl x:name="ContentContainer" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" margin="{TemplateBinding padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/> <GrID x:name="Details"> <!-- Put the content of your details panel here. --> </GrID></StackPanel>总结
以上是内存溢出为你收集整理的silverlight – WP7:更改所选列表框项目中项目的可见性全部内容,希望文章能够帮你解决silverlight – WP7:更改所选列表框项目中项目的可见性所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)