none
如何修改ListViewItem选中Item的子控件的内容及样式? RRS feed

  • 问题

  • 我的ListView的Item结构如下: 就是有两个Border,其中一个Border(borderLeft)平时是隐藏的,只有选中了才显示,另一个border平时是灰色的,选中后变为红色,txtItemTitle平时是灰色的,选中后也变为红色。

    <DataTemplate x:Key="DataTemplateCategory">
                <StackPanel HorizontalAlignment="Center">
                    <Border AutomationProperties.AutomationId="borderLeft" BorderBrush="Transparent" BorderThickness="10,0,0,0">
                    </Border>
                    <Border BorderThickness="0,0,0,1" Margin="20,0,20,0" Padding="0,0,0,20">
                        <TextBlock  x:Name="txtItemTitle" Text="{Binding Name,Mode=OneWay}" >
                        </TextBlock>
                    </Border>
                </StackPanel>
            </DataTemplate>

    请问有什么办法可以做到这一点呢?

    我想过做个Converter来做这件事情,但Converter里面怎么知道当前这个Item的选择状态呢?

    或者是在选择后,在事件里获取当前的ListViewItem,再获取这个Item的DataTemplate里面的控件自行修改?

    该怎么做呢?

    2015年5月13日 2:40

答案

  • 你好 Zeng_Wenjun,

    可以参考下: ListViewItem 样式和模板, 在Template里面定义这两个Border,然后在对应的视觉状态:Selected里面或者UnSelected里面 修改Border的可见度,同样,修改颜色也是一样在那两个里面定义。

    --James


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年5月14日 3:16
    版主

全部回复

  • 你好 Zeng_Wenjun,

    可以参考下: ListViewItem 样式和模板, 在Template里面定义这两个Border,然后在对应的视觉状态:Selected里面或者UnSelected里面 修改Border的可见度,同样,修改颜色也是一样在那两个里面定义。

    --James


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年5月14日 3:16
    版主
  • 谢谢,我试下。
    2015年5月14日 12:38