Windows phone 8 如何在windows phone 8中更改列表框内的图像

Windows phone 8 如何在windows phone 8中更改列表框内的图像,windows-phone-8,Windows Phone 8,如何在windows phone中更改列表框内的图像,当用户在列表框中选择一个项目时,我要更改该特定项目的图像,我正在使用以下代码 <ListBox x:Name="list_contacts" SelectionMode="Multiple" ItemsSource="{Binding}" SelectionChanged="list_contacts_SelectionChanged" Foreground="White" Height="540" >

如何在windows phone中更改列表框内的图像,当用户在列表框中选择一个项目时,我要更改该特定项目的图像,我正在使用以下代码

  <ListBox x:Name="list_contacts" SelectionMode="Multiple" ItemsSource="{Binding}" SelectionChanged="list_contacts_SelectionChanged" Foreground="White" Height="540" >

                    <ListBox.ItemTemplate>
                    <DataTemplate>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="7*" />
                                </Grid.ColumnDefinitions>
                                <StackPanel Orientation="Horizontal" Grid.Column="0" Margin="0, 20, 0, 0">                                       
                                    <TextBlock x:Name="ContactResults"  Text="{Binding DisplayName, Mode=OneWay}" FontSize="22" FontFamily="Vardana" Margin="10, 0, 0, 0" />
                                </StackPanel>
                                <StackPanel>
                                    <TextBlock x:Name="ContactRe"  Text="{Binding PhoneNumbers[0], Mode=OneWay}"  FontSize="22" FontFamily="Vardana" Margin="10, 50, 0, 0" />
                                </StackPanel>
                                <StackPanel Margin="400,30,0,0" Grid.Column="1">
                                        <Image Grid.Column="1"  x:Name="img_network_status" Source="/Assets/Images/gray.circle.png" Width="40" Height="40" Stretch="Fill"/>
                                </StackPanel>
                                <StackPanel>
                                    <Border BorderThickness="0" HorizontalAlignment="Left" Background="Transparent" VerticalAlignment="Center"  BorderBrush="Black" >
                                        <Image Visibility="Visible" Source="/Assets/Images/line.png" Height="45" Width="500" Stretch="Fill" Margin="0,40,0,0" />
                                    </Border>
                                </StackPanel>
                            </Grid>
                        </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

如果使用ObservableCollection类来存储图像列表,会更容易


然后,您可以在SelectionChanged事件处理程序中添加代码,以更改所选项目的图像

可以将图像路径绑定到ViewModel中的值,并在用户选择图像后交换路径值:

<Image Grid.Column="1"  x:Name="img_network_status" Source="{Binding YourPathToTheImageInYourViewModel}" Width="40" Height="40" Stretch="Fill"/>


另一个选项是在ViewModel中有一个
IsSelected
属性,该属性反映当前选中的项目。您必须手动设置/取消设置它!然后,该属性可以用于任何显示不同图像、更改字体颜色、更改可见性或其他任何操作。转换器通常被低估为文本格式,但也可用于将布尔值转换为任何其他属性(例如)

请发送任何示例