Silverlight 4.0 如何在Silverlight for Windows Phone7中绑定列表框数据

Silverlight 4.0 如何在Silverlight for Windows Phone7中绑定列表框数据,silverlight-4.0,Silverlight 4.0,需要有关Silverlight for Windows Phone中ListBox数据绑定的帮助。守则如下: 1) 页面加载事件: var ml = new MediaLibrary(); var ChkPics = ml.Pictures; var PicNames = from p in ChkPics where p.Name.Contains("s") select p; foreach (var pic in PicName

需要有关Silverlight for Windows Phone中ListBox数据绑定的帮助。守则如下:

1) 页面加载事件:

var ml = new MediaLibrary();
var ChkPics = ml.Pictures;
var PicNames = from p in ChkPics
               where p.Name.Contains("s")
               select p;

foreach (var pic in PicNames)
{  
    PhotoNames.PhotoFileNames.Add(pic.Name);
}
注:图片是图片的集合,图片名称是图片名称的集合

var ml = new MediaLibrary();
var ChkPics = ml.Pictures;
var PicNames = from p in ChkPics
               where p.Name.Contains("s")
               select p; 
2) 静态类

public static class PhotoNames
{
    private static List<string> m_Photoname = new List<string>();

    public static List<string> PhotoFileNames
    {
        get
        {
            return m_Photoname;
        }
        set
        {
            m_Photoname = value;
        }
    }
}
如何将列表框绑定到此静态类,并在列表框内显示
TextBlock
中的所有数据


谢谢。

看起来像是ml。Pictures提供了您需要的所有信息(姓名和图片)。为什么需要静态类

您可以执行以下操作:

var ml = new MediaLibrary();
listBox.ItemSource = ml.Pictures.Where(picture => picture.Name.Contains("s"));
在您的XAML中:

<UserControl.Resources>
    <local:ImageConverter x:Key="ImageConverter"></local:ImageConverter>
...
</UserControl.Resources>

<ListBox x:Name="listBox">
    <ListBox.ItemTemplate>
    <DataTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="120"></ColumnDefinition>
                <ColumnDefinition Width="35"></ColumnDefinition>
            </Grid.ColumnDefinitions>

            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"></RowDefinition>
            </Grid.RowDefinitions>

            <TextBlock Grid.Column="0" Grid.Row="0" Text="{Binding Name}"></TextBlock>
            <Image Grid.Column="1" Grid.Row="0" Source="{Binding Picture, Converter={StaticResource ImageConverter}}"></Image>
        </Grid>
    </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>


...
模板在缩略图中同时显示图片的名称和图片本身,如果不需要图片,请使用DisplayMemberPath

<ListBox x:Name="listBox" DisplayMemberpath="Name">
</ListBox>


/// <summary>
/// Converts an image path to the associated image.
/// </summary>
public class ImageConverter : IValueConverter
{
    #region IValueConverter implementation
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string imagePath = (string)value;
        Uri Uri = new Uri(imagePath, UriKind.Relative);
        return new BitmapImage(Uri);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

/// 
///将图像路径转换为关联的图像。
/// 
公共类图像转换器:IValueConverter
{
#区域转换器实现
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
字符串imagePath=(字符串)值;
Uri=新Uri(imagePath,UriKind.Relative);
返回新的位图图像(Uri);
}
公共对象转换回(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
抛出新的NotImplementedException();
}
}

它部分用作无图片显示。基于此变量ml=new mediabrary();listBox.ItemSource=ml.Pictures.Where(picture=>picture.Name.Contains(“s”);这幅画没有显示出来。以Where语句为基础。我对XAML进行了更改:图片对图片或图片。图片未显示。以Where语句为基础。我对XAML进行了更改:图片对图片或图片。抱歉。意外按下回车键。如果我不需要图片,我需要做什么?如何使用路径?谢谢。这回答了我的问题。如果你能帮助我如何显示图片,那就太好了。我尝试了很多方法,但仍然无法显示图片(缩略图)。我刚得到照片文件名。