2

私が使用している現在のクライアント(むしろ制御)では、リクエストを受信/解析する方法は次のとおりです。

        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>

新しい更新 - ヘルプ (未解決): これらの文字列を使用して、1 つのアイテム セット (ID、名前、リンクなど) を取得するのではなく、各アイテムが存在する場合は ListBox に配置できるようにしようとしています。

   public class Datum
    {
        public string id { get; set; }
        public string name { get; set; }
        public string link { get; set; }
    }

どんな助けでも大歓迎です!

4

1 に答える 1

1

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;

これは単純な例ですが、必要なものを提供する必要があります。

于 2012-05-15T19:48:06.097 に答える