gpt4 book ai didi

c# - 包含来自 xml 的事件的动态按钮列表

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:48 25 4
gpt4 key购买 nike

我正在将 silverlight rss 阅读器作为学校项目,但遇到一个问题。我想在 xml 中定义 feed 源列表,并将此 xml 加载到按钮列表,每个按钮对应一个 feed。xml看起来像

<FeedList>  
<Feed ButtonContent="HDRip's on RlsLog.net" Url="http://www.rlslog.net/category/movies/hdrip/feed/" />
</FeedList>

我正在使用 linq 加载此 xml 并创建按钮

XDocument xdoc = XDocument.Load(string.Format("feeds.xml"));

if (xdoc != null)
{
var feedlist =
(from l in xdoc.Descendants("Feed")
select new MyButtons
{
Content = l.Attribute("ButtonContent").Value,
FeedUrl = l.Attribute("Url").Value
}
).ToList();

foreach (MyButtons feedbutton in feedlist)
{
Button b1 = new Button();
b1.Content = feedbutton.Content;
b1.Click += (s, e) => { feedViewer.LoadFeed(feedbutton.FeedUrl); };
ButtonPanel.Children.Add(b1);
}
}

按钮内容加载正常,但该提要 url 用于所有按钮的 xml 中的最后一个。你能告诉我我做错了什么吗?

最佳答案

看起来 feedbutton 被捕获为迭代变量,因此在您使用 lambda 表达式分配事件处理程序时导致您描述的行为。

试试这个:

MyButtons tempButton = feedbutton;
b1.Click += (s, e) => { feedViewer.LoadFeed(tempButton.FeedUrl); };

Eric Lippert 已就此主题发表博文:

关于c# - 包含来自 xml 的事件的动态按钮列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8196460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com