현재 응용 프로그램이 시작될 때 메소드를 열고, 들어오는 패키지를 확인하고, 목록을 채울 수 있도록 목록보기 내 단방향 데이터 바인딩을 수행하려고합니다. , 그리스트를 listview에 바인드하면 각 패키지에 정보가 표시됩니다. 그러나 어떤 이유로 ListView가 실제로 채워지지 않습니다. 디버깅을했고 백엔드 코드가 모두 잘 작동합니다. 패키지 모델 및 모델 목록과 같은 로컬 변수가 모두 완벽하게 채워집니다. 그러나, ListView 어떤 콘텐츠를 보유하지 않으며 내가 로컬 변수를 보면 각 콘텐츠 조각을 완전히 비어있는 것으로 보여줍니다.UWP - 바인딩 데이터가 작동하지 않음 - 빈 ListView
012 DeliveryPlanner.xamlDeliveryPlannerData.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();
}
}
: 여기
내 코드입니다<ListView x:Name="listView" ItemTemplate="{StaticResource ShipmentModelTemplate1}" ItemsSource="{Binding shipments, Mode=OneWay}" Margin="19,12,19,0" Grid.Row="1" VerticalAlignment="Bottom"/>
이것은 분명히 각 문서의 모든 코드는 아니지만 중요한 부분입니다. 내가 잘못하고있는 것이 궁금합니다. listView는 채우지 않습니다.
는 '이 [ObservableCollection에] shipments' 만드는 시도이며 /library/ms668604(v=vs.110).aspx) –
안녕하세요, 감사합니다! 그것은 완벽하게 작동했습니다. 괜찮 으면 List <>에서 ObservableCollection <>으로 변경하면 왜이 작업을 수행했는지 설명 할 수 있습니까? – msiegs
예 ObservableCollection이 필요합니다. 차이점을 여기에서보십시오. http://stackoverflow.com/a/4197068/4585476 – AVK