TextBlock
バインディングを持つ ListBox の Web サービスを介して情報を表示しようとしています。この問題をオンラインで調査しましたが、この問題を解決できないようです。データベース テーブルには適切なデータが保持されています。最後に、まったく同じ関数/メソッドを提供し、適切なデータを表示するページを取得しました。私はこの問題に本当に悩まされており、あなたの誰かが助けてくれることを望んでいました!
ListBox のスクリーンショットをアップロードできませんが、ここで説明できるように最善を尽くします。
注文書(タイトル)
注文書番号: 1 (ListItem) ステータス: 承認済み (ListItem)
-----最初の行が表示された後に破損したデータが表示されます-----
注文書番号: 0
注文書番号: 0
- - 終わり - -
最初の行には正しいデータが表示されますが、他の行はすべて破損していることに注意してください。ただし、検索機能を実装すると、データベースから既存のデータを適切に表示できます。(破損していません)。
PurchaseOrder.aspx:
<controls:PivotItem Header="Purchase Order" FontSize="18">
<ScrollViewer VerticalScrollBarVisibility="Visible">
<ListBox x:Name="ListBoxPurchaseOrder" Margin="20,42,38,0" d:LayoutOverrides="VerticalAlignment">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding purchaseOrderID, StringFormat='Purchase Order No: \{0\}'}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="38" />
<TextBlock Text="{Binding status, StringFormat='Status: \{0\}'}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
</controls:PivotItem>
PurchaseOrder.aspx.cs:
public PO()
{
load();
InitializeComponent();
}
bool success = false;
Session.PurchaseOrder session = new Session.PurchaseOrder();
private void load()
{
InitializeComponent();
IfsRetailerClient myClient = new IfsRetailerClient();
myClient.getPurchaseOrder1Completed += new EventHandler<getPurchaseOrder1CompletedEventArgs>(myClient_getPurchaseOrder1Completed);
myClient.getPurchaseOrder1Async();
}
void myClient_getPurchaseOrder1Completed(object sender, getPurchaseOrder1CompletedEventArgs e)
{
ListBoxPurchaseOrder.ItemsSource = e.Result;
}
Web サービス ファイル、IfsRetailer.cs:
[OperationContract]
List<Payment> getPayment();
fsRetailer.cs:
DatabaseEntities db = new DatabaseEntities();
public List<Payment> getPayment()
{
return db.Payments.ToList();
}