C# 如何更新WalletItem?
我如何更新一个文件?我可以删除然后添加一个C# 如何更新WalletItem?,c#,windows-phone-8.1,C#,Windows Phone 8.1,我如何更新一个文件?我可以删除然后添加一个WalletItem,但是当我这样做时,WalletItem的磁贴就会从开始屏幕上消失,我想其他不好的事情也会发生 如何在不删除WalletItem的情况下更新它?使用商店的方法 为什么这样做的秘密是,当你通过获得一张票时,WalletItems已经设置了他们的Id。这是一个只读属性。因此,当您通过该方法发回WalletItems时,存储从WalletItem读取Id 这对我来说有点奇怪,至少因为接受Id作为参数而不是项的属性 例如: var newTi
WalletItem
,但是当我这样做时,WalletItem
的磁贴就会从开始屏幕上消失,我想其他不好的事情也会发生
如何在不删除WalletItem的情况下更新它?使用商店的方法
为什么这样做的秘密是,当你通过获得一张票时,WalletItems已经设置了他们的Id
。这是一个只读属性。因此,当您通过该方法发回WalletItems时,存储从WalletItem读取Id
这对我来说有点奇怪,至少因为接受Id作为参数而不是项的属性
例如:
var newTicket = MyService.GetTicket();
var store = await WalletManager.RequestStoreAsync();
var currentTickets = await store.GetItemsAsync();
if (currentTickets.Count(x => x.Id == newTicket.SerialNumber) == 1)
{
// the ticket exist so let's update it
// get the "old" ticket from the Wallet store
var ticket = currentItems.First(x => x.Id == newTicket.SerialNumber);
// update the "old" ticket with the updated information
ticket.DisplayName = newTicket.Name;
ticket.BodyColor = Color.FromArgb(255, 255, 0, 0);
// put the updated "old" ticket back in the store again
await store.UpdateAsync(ticket);
}
else
{
// the ticket does not exist so let's add it
await store.AddAsync(newTicket.SerialNumber, new WalletItem(WalletItemKind.Ticket, newTicket.Name)
{
BodyFontColor = Color.FromArgb(255, 255, 255, 255),
BodyColor = Color.FromArgb(255, 50, 50, 230),
DisplayName = newTicket.Name,
ExpirationDate = newTicket.ExpireDate,
IssuerDisplayName = "My Company"
});
}