Windows phone 8.1 xaml Listview选择了项目样式 [英] Windows phone 8.1 xaml Listview selected Item style

查看:57
本文介绍了Windows phone 8.1 xaml Listview选择了项目样式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的我是新的到Windows手机和xaml。我现在在我的数据透视模板上有listview我只是想要当我在
列表视图中选择一个项目时,这里更改的背景颜色是我的xaml代码

                        <ListView x:Name="LVPrimary" Grid.Row="2" Grid.Column="0" 
                            ItemsSource="{Binding}"
                            IsItemClickEnabled="True"
                            ItemClick="LVPrimary_ItemClick"  
                                  
                            ContinuumNavigationTransitionInfo.ExitElementContainer="True">
                                
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <Border Width="40" Height="40" CornerRadius="5,5,5,5">
                                            <Border.Background>
                                                <ImageBrush ImageSource="{Binding ImagePath}" />
                                            </Border.Background>
                                        </Border>
                                        <StackPanel Grid.Row="0" Grid.Column="1" Margin="0,0,0,0">
                                            <TextBlock 
                                    Text="{Binding Code}"
                                    TextWrapping="Wrap"
                                    Pivot.SlideInAnimationGroup="1"
                                    CommonNavigationTransitionInfo.IsStaggerElement="True"
                                    Style="{ThemeResource ListViewItemTextBlockStyle}"
                                    Margin="0,0,19,0"/>
                                            <TextBlock
                                                TextWrapping="NoWrap" TextTrimming="CharacterEllipsis"
                                    Text="{Binding Name}"
                                    Pivot.SlideInAnimationGroup="2" 
                                    CommonNavigationTransitionInfo.IsStaggerElement="True" 
                                    Style="{ThemeResource ListViewItemContentTextBlockStyle}"
                                    Margin="0,0,5,0"/>
                                        </StackPanel>
                                    </Grid>
                                </DataTemplate>
                            </ListView.ItemTemplate>
                        </ListView>

unseendreamzzz

unseendreamzzz

推荐答案

您将拥有列表< ItemClass> ObservableCollection< ItemClass>

您可以做的是 - 定义一个 SolidColorBrush 属性并将此属性绑定到您的项目网格。我创建了这个例子: -

You will have a List<ItemClass> and ObservableCollection<ItemClass>.

What you can do is - Define a SolidColorBrush Property and bind this property to your Item Grid. I have created this example : -

这是我的项目类: - 确保你实现 INotifyPropertyChanged

Here is my Item Class : - Make sure you Implement INotifyPropertyChanged.

public class Item : INotifyPropertyChanged
{
    public string Something { get; set; }

    public SolidColorBrush ItemBackground
    {
        get { return _itemBackground; }
        set
        {
            _itemBackground = value;
            OnPropertyChanged("ItemBackground");
        }
    }

    private SolidColorBrush _itemBackground;


    public event PropertyChangedEventHandler PropertyChanged;

    [NotifyPropertyChangedInvocator]
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

和我的样本&简单的Xaml是: -

And My sample & simple Xaml is :-

<ListView x:Name="LVPrimary" IsItemClickEnabled="True" ItemClick="ListViewBase_OnItemClick">
        <ListView.ItemTemplate>
            <DataTemplate>
                <Grid Background="{Binding ItemBackground}" Height="100" Width="200">
                    <TextBlock Text="{Binding Something}"></TextBlock>
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
 </ListView>

在Onlick Event上我只是更改了点击项目的颜色,如下所示: -

And on Onlick Event I just changed the color of the clicked item like this :-

private void ListViewBase_OnItemClick(object sender, ItemClickEventArgs e)
{
        ((Item)e.ClickedItem).ItemBackground = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255));
}


这篇关于Windows phone 8.1 xaml Listview选择了项目样式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆