将来自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; }
    }

任何帮助都非常感谢!

将来自Facebook API的字符串放入Listbox

您需要

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;

这是一个简单的例子,但应该能满足你的需求。