![](/img/trans.png)
[英]How can I create an image gallery from a folder in Windows Phone 8 using XAML and C#?
[英]how can I create an image gallery from a list of image URLs?
我可以使用Amazon SimpleDB获得一堆图像URL。 我试图了解将URL绑定到Repeater并创建相册的最佳方法。 中继器可能不是最好的数据控件,因此,如果您能想到一种更好的方法,我欢迎您提出建议。
List<string> imgURLS = new List<string>();
String selectExpression = "Select * From Gallery Where Category = 'imgurls'";
SelectRequest selectRequestAction = new SelectRequest().WithSelectExpression(selectExpression);
SelectResponse selectResponse = sdb.Select(selectRequestAction);
if (selectResponse.IsSetSelectResult())
{
SelectResult selectResult = selectResponse.SelectResult;
foreach (Item item in selectResult.Item)
{
Console.WriteLine(" Item");
if (item.IsSetName())
{
imgURLS.Add(item.Value) //the URL of the image
}
}
}
Repeater1.DataSource = imgURLS;
Repeaster1.DataBind();
在此示例中,我只是构建URL的List [string],但我在网上看到的所有示例都使用带有Eval类型语句的内联DataBinding SQL类型函数。
在.aspx页中,我是否需要设置除ItemTemplate以外的任何东西?
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
//How do I direct my DataSource here?
</ItemTemplate>
</asp:Repeater>
您需要在App_Code目录中的项目中添加两个类。
一个将包含字符串类的包装器(我称为StringWrapper),另一个将包含List类型的方法。 最后一个方法将返回您的imgURLS列表。
public class StringWrapper
{
public string Value
{ get; set; }
public StringWrapper(string s)
{
this.Value = s;
}
public static implicit operator StringWrapper(string s)
{
return new StringWrapper(s);
}
}
public static class Tools
{
public static List<StringWrapper> GetImgUrls()
{
List<StringWrapper> imgURLS = new List<StringWrapper>();
String selectExpression = "Select * From Gallery Where Category = 'imgurls'";
SelectRequest selectRequestAction = new SelectRequest().WithSelectExpression(selectExpression);
SelectResponse selectResponse = sdb.Select(selectRequestAction);
if (selectResponse.IsSetSelectResult())
{
SelectResult selectResult = selectResponse.SelectResult;
foreach (Item item in selectResult.Item)
{
Console.WriteLine(" Item");
if (item.IsSetName())
{
imgURLS.Add(item.Value) //the URL of the image
}
}
}
return imgURLS;
}
}
然后在设计模式下的aspx页面上,选择转发器,然后单击右上角。 您单击选择的数据源,添加新的数据源。 选择对象(如果需要,可以重命名),然后单击“确定”。
然后,取消选中该复选框以查看所有可以使用的对象,选择创建的类的名称(此处为“工具”)。 您单击下一步,然后选择GetImgUrls方法,然后单击终止。
然后,要使用它,只需在ItemTemplate中调用<%#Eval(“ Value”)%>,例如:
<ItemTemplate>
<img src='<%# Eval("Value") %>' />
</ItemTemplate>
Eval函数查找属性,并且字符串除了“ Length”属性外没有其他属性。 这就是为什么需要制作一个字符串包装程序,以便Eval可以调用Value属性并获取字符串值的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.