我正在尝试通过具有TextBlock
绑定的 ListBox 中的 Web 服务显示信息。我一直在网上研究这个问题,似乎无法解决这个问题。我的数据库表确实保存了正确的数据。最后,我有一个页面,它提供了完全相同的功能/方法,并显示了正确的数据。我真的被这个问题困扰着,希望你们中的一个可以帮忙!
我无法上传我的 ListBox 的屏幕截图,但我会尽力在这里说明它!
采购订单(标题)
采购订单编号:1 (ListItem) 状态:已接受 (ListItem)
-----显示第一行后出现损坏的数据-----
采购订单号:0
采购订单号:0
- - 结尾 - -
请注意,我的第一行显示正确的数据,而其他数据都已损坏。但是,在实现搜索功能时,我能够正确查看数据库中的现有数据。(未损坏)。
采购订单.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();
}