ObservavebleColectionをlistViewにバインドしました。基本的に、このコレクションはサーバーのすべての変更に対応し、更新を文字列形式で受け取る必要があります。ユニークな要素を追加し、C#でObservableCollectionを自動的に更新します
私のコードでは、文字列を解析して要素をコレクションに追加していますが、要素を削除する方法がわかりません。サーバー上で要素が削除または変更されたときに、コレクションを更新するにはどうすればよいですか?ここで
は私のコードです:
public static ObservableCollection<TransactionDetails> offerList = new ObservableCollection<TransactionDetails>();
public async static Task<ObservableCollection<TransactionDetails>> getOfferList()
{
// Start getting Offers
string Offer = await BedpAPI_V1.getOfferList();
string[] splitedResponse = Offer.Split(new[] { "@@@@" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string response in splitedResponse) {
string[] splitedMessage = response.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
offer.TransactionID = Convert.ToInt32(splitedMessage[0]);
offer.Seller = splitedMessage[1];
offer.Cost = Convert.ToDouble(splitedMessage[2]);
offer.Duration = Convert.ToInt16(splitedMessage[3]);
offer.Delay = Convert.ToInt16(splitedMessage[4]);
offer.Capacity = Convert.ToDouble(splitedMessage[5]);
offer.Availability = Convert.ToDouble(splitedMessage[6]);
if (currentOffer <= offer.TransactionID)
{
offerList.Add(new TransactionDetails() { TransactionID = offer.TransactionID, Seller = offer.Seller, Cost = offer.Cost, Duration = offer.Duration, Delay = offer.Delay, Capacity = offer.Capacity, Availability = offer.Availability });
currentOffer++;
}
}
return offerList;
}
@mjwills clear: "要素が削除されたり、サーバー上で変更されたときにコレクションを更新するにはどうすればよいですか?" –
あなたのコードは@DiogoCostaで何をしますか?たとえば、例外がスローされますか? **それはどうしたらうまくいかないのですか?** – mjwills
コードはそれが想定しているとおりに動作します(つまり、文字列を解析して要素をコレクションに追加します)。私は、現在の要素を削除する方法を見つけることができません。 –