私は現在、リストビュー内で一方向データバインディングを実行しようとしているので、アプリケーションが起動すると、メソッドが開き、入ってくるパッケージをチェックし、そのリストをlistviewにバインドすると、各パッケージに情報が表示されます。しかし、何らかの理由で、ListViewが実際にデータを取り込むわけではありません。私はデバッグを行い、バックエンドコードはすべて正常に動作しています。パッケージモデルやモデルリストなどのローカル変数はすべて完全に実装されています。しかし、ListViewはコンテンツを保持していません。ローカル変数を見ると、各コンテンツが完全に空であることが示されます。ここでUWP - バインディングデータが機能していない - 空リストビュー
は私のコードです:
DeliveryPlannerData.cs
public static List<ShipmentModel> shipments { get; set; } = new List<ShipmentModel>();
public async static void populateDeliveryPlanner(string startDate, string endDate)
{
var deliveryPlanner = await DeliveryPlanner.DeliveryPlannerRequest(startDate, endDate);
//if (panel.Children.Count > 0)
// panel.Children.Clear();
try
{
List<string> trackingNumber = deliveryPlanner["trackingNumber"];
List<string> lastScanDate = deliveryPlanner["lastScanDate"];
List<string> scheduledDelivery = deliveryPlanner["scheduledDelivery"];
List<string> status = deliveryPlanner["status"];
for (int i = 0; i < trackingNumber.Count; i++)
{
shipments.Add(new ShipmentModel(
trackingNumber[i], lastScanDate[i], scheduledDelivery[i], getStatus(status[i])
));
var v = shipments;
}
}
catch (NullReferenceException e)
{
var error = e;
}
} // populateDeliveryPlanner
ShipmentModel.cs
public class ShipmentModel : INotifyPropertyChanged
{
public string TrackingNumber;
public string LastScanDate;
public string ScheduledDelivery;
public string Status;
public event PropertyChangedEventHandler PropertyChanged = delegate { };
public ShipmentModel(string trackingNumber, string lastScanDate, string scheduledDelivery, string status)
{
TrackingNumber = trackingNumber;
LastScanDate = lastScanDate;
ScheduledDelivery = scheduledDelivery;
Status = status;
}
public string trackingNumber
{
get { return this.TrackingNumber; }
set
{
this.TrackingNumber = value;
this.OnPropertyChanged();
}
}
DeliveryPlanner.xaml
<ListView x:Name="listView" ItemTemplate="{StaticResource ShipmentModelTemplate1}" ItemsSource="{Binding shipments, Mode=OneWay}" Margin="19,12,19,0" Grid.Row="1" VerticalAlignment="Bottom"/>
これは明らかに、各ドキュメント内のすべてのコードはありませんが、それは重要な部分です。 私は何が間違っているのだろうか? listViewは設定を拒否します。
'[のObservableCollection(https://msdn.microsoft.com/en-usをshipments'作ってみるです/library/ms668604(v=vs.110).aspx) –
ねえ、ありがとう!それは完璧に働いた。あなたが気にしないなら、List <>からObservableCollection <>への変更がこの作品を作った理由を説明できますか? – msiegs
はい、ObservableCollectionが必要です。ここの違いを参照してください。 http://stackoverflow.com/a/4197068/4585476 – AVK