将来自Facebook API的字符串放入Listbox
本文关键字:Listbox 字符串 Facebook API 将来 | 更新日期: 2023-09-27 18:34:19
在我正在使用的当前客户端(而不是控制)中,接收/解析请求的方法是:
var result = (IDictionary<string, object>)e.GetResultData();
string id = result["id"].ToString();
string name = result["name"].ToString();
Dispatcher.BeginInvoke(() =>
{
id.ItemsSource = new List<String> {
id,
name};
}
XAML 如下所示:
<ListBox Height="168" HorizontalAlignment="Left" Margin="204,21,0,0" Name="id" VerticalAlignment="Top" Width="239" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="2">
<TextBlock Text="{Binding}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
新更新 - 寻求帮助(未解决):我正在尝试使用这些字符串,以便我可以将每个项目放在 ListBox 中(如果存在更多),而不是只抓取 1 个项目集(例如 id、名称、链接)。
public class Datum
{
public string id { get; set; }
public string name { get; set; }
public string link { get; set; }
}
任何帮助都非常感谢!
您需要
将ItemsSource
设置为实现IEnumerable
的东西。
id.ItemsSource = new List<String> { id };
您还需要调整绑定以接收DataContext
,因为您没有传入对象。
<TextBlock Text="{Binding}" />
如果要在简单字符串之外扩展,请创建一个类,该类将包装您的内容,然后绑定到给定的属性。
class Person
{
String id {get; set;}
String name {get; set;}
}
<ListBox Height="168" HorizontalAlignment="Left" Margin="204,21,0,0" Name="id" VerticalAlignment="Top" Width="239" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="{Binding id}" />
<TextBlock Text="{Binding name}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
然后,在代码隐藏中,您可以创建一个实例并像以前一样分配。
Person p = new Person();
p.id = "id";
p.name = "name";
List<Person> people = new List<Person>();
people.Add(p);
id.ItemsSource = people;
这是一个简单的例子,但应该能满足你的需求。