<phone:LongListSelector x:Name="MainLongListSelector" DataContext="{Binding listData}" IsGroupingEnabled="False" SelectionChanged="MainLongListSelector_SelectionChanged_1">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Name="PlayPause" Source="{Binding ImgUrl}" Height="100" Stretch="Fill"/>
<StackPanel>
<TextBlock Text="{Binding ImgText}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
:
ObservableCollection<LongListData> listData = new ObservableCollection<LongListData>();
listData.Add(new LongListData() { ImgText = "Image1", ImgUrl = new Uri("Images/1.jpg", UriKind.Relative) });
listData.Add(new LongListData() { ImgText = "Image2", ImgUrl = new Uri("Images/2.jpg", UriKind.Relative) });
listData.Add(new LongListData() { ImgText = "Image3", ImgUrl = new Uri("Images/3.jpg", UriKind.Relative) });
listData.Add(new LongListData() { ImgText = "Image4", ImgUrl = new Uri("Images/4.jpg", UriKind.Relative) });
MainLongListSelector.ItemsSource = listData;
인 selectionchanged 방법에서
private void MainLongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var res = (sender as LongListSelector).SelectedItem as LongListData;
int index = listData.IndexOf(res);
//mark 1
var newData = new LongListData() { ImgText = res.ImgText, ImgUrl = new Uri("Images/2.jpg", UriKind.Relative) };
listData.RemoveAt(index);
listData.Insert(index, newData);
}
는 C# 코드에서 정의 class
public class LongListData
{
public Uri ImgUrl { get; set; }
public string ImgText { get; set; }
}
,
이미지를 무작위로 또는 코드의 'mark1'에서 필요에 따라 사용할 수 있습니다.
왜 각 항목마다 다른 이미지가있는 목록을 항목 목록에 표시하지 않습니까? –
그것은 서버로부터 얻을 수있는 트랙의 목록이고 이미지 "play \ pause"는 각 객체마다 동일해야하며 사용자가 클릭하면 선택한 객체에 대해 "일시 중지"할 이미지가 필요합니다. VM 엔터티에 이미지가 있어야합니까? 어떻게 그 말을하는거야? 이 경우 –