2011-07-11 8 views
0
{ 
     "body": "testtt", 
     "from_id": 37917395, 
    }, 
    { 
     "body": "hiii", 
     "from_id": 124769733, 
    }, 

私はこの応答を解析し、IDからのメッセージは、「37917395」テキストブロックの左側になり、ID「124769733」からのメッセージが右side.Likeにこのなることを必要とします:変換/データバインディング、スタイルのテキストブロックWP7

testtt

 hiii 

メッセージはありません。このorder.Likeであってもよい:

testtt

これも私

  hiii 

私はこのような何か開発したい:私はコンバーターを使用する必要があると思う

sms view

を。アルゴリズムを教えてください。

私がすでに持っているもの。 enter image description here

+0

あなたが既に持っているアルゴリズムを手伝ってください。あなたが私たちにあなたのためにこれをやりたがっているように思えます。 –

+0

Okey.Oneの瞬間。 – SevenDays

答えて

1

私はコンバータだけでは十分ではないと思います。

コンバーターは一度に1つの値で動作し、アラインメント/グループ化を変更するために前の値(上の値)が何であったかを知るためにサンプルコントロールが必要です。

ベストは、バインドするデータのタイプを変更します。データを最初に表示要件に適した構造に解析します。プロパティの1つとして左/右の整列値を含めます。 Aコンバータは、そのフラグをアラインメントに変換するのに有用である。

はあなたのviewmodelsを見て:)のために時間がかかるかもしれません

1

あなたは、メッセージが左または右にするかどうfrom_idが示すかどうかを判断する必要があります。次に、これを組み合わせて、whehterディスプレイが左右どちらかにあるかどうかを制御する方法と組み合わせる必要があります。

私は自分のコントロールを使ってメッセージを表示していると仮定します。また、画面の左または右に表示するかどうかを示すプロパティがあるとします。 from_idをこのプロパティにバインドし、コンバータを使用して、メッセージのどちら側にあるべきかを判断する必要があります。

0

@wsevendays各コメント/レコードに整数の主キーがある場合、その値を%2(2で除算したときの剰余を見つける)にすることができます。この値は0または1のいずれかになります。 UI内のデータを左または右に移動します。

+0

ありがとう、私は答えを持っている: 'string UID =(string)value; if(UID ==((App)Application.Current).UserId) 新しい厚さ(140,0,0,0)を返します。 return新しい厚さ(5、0、0、0); ' – SevenDays

1

リストボックスにデータを配置する場合、リストボックスのItemTemplateでDataTemplateSelectorを使用する必要があります。最初のDataTemplateは左揃えになり、もう一方は右揃えになります。 WP7のDataTemplateSelectorのチュートリアルを検索するだけで、必要なものが正確に表示されるはずです。

+0

私はこれが以前提案されていなかったことに驚いています。 WPTのDataTemplateSelectorsのチュートリアル(www.windowsphonegeek.com/articles/Implementing-Windows-Phone-7-DataTemplateSelector-and-CustomDataTemplateSelector) –

関連する問題