Rob*_*Rob 4 silverlight windows-phone-7
我有一个列表框,其中定义了以下数据模板:
<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>
Run Code Online (Sandbox Code Playgroud)
列表框:
<ListBox Name="myListBox" ItemTemplate="{StaticResource MyTemplate}" ItemsSource="{Binding UserList}" />
Run Code Online (Sandbox Code Playgroud)
问题如下; 当用户选择列表框中的项目时,我想通过将stackpanel的可见性设置为可见来显示其他信息.
任何想法是如何实现这一点(通过xaml或c#)?我试图改变故事板,但我没有采用这种方法.
创建一个ItemContainerStyle
具有默认值ContentControl
以显示其内容ItemTemplate
但也具有使用Visibility
set to 定义的详细信息内容Collapsed
.然后,更新"已选择",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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1679 次 |
最近记录: |