我正在用 c# 和 xaml 为网站开发一个 Windows 8 商店应用程序(该网站位于 .net mvc 4 中)。在网站中,我可以创建、编辑和删除产品(我正在使用 sql server 2008 r2) . 在我的 w8 应用程序中,我调用 wcf 服务来获取数据并填充项目。我想知道在有人通过网站创建或编辑产品后,是否有办法通知或更新 w8 应用程序中的数据。我认为可能的解决方案之一是每次用户单击以查看产品列表时调用 wcf 服务,但我认为这不是一个好习惯。这是我的代码:
//App.xaml.cs
protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
ServiceProduct serviceData = (ServiceProduct)App.Current.Resources["serviceProducts"];
if (serviceData != null)
{
if (serviceData.ListaIos.Count == 0)
{
try
{
await serviceData.GetListProductsAsync();
}
catch(ServiceException)
{
var messageDialog = new Windows.UI.Popups.MessageDialog("Error");
var result = messageDialog.ShowAsync();
}
}
}
*** code ***
}
//Items page
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
// TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"]
ServiceProduct serviceData = (ServiceProduct)App.Current.Resources["serviceProducts"];
if (serviceData != null)
{
this.DefaultViewModel["Items"] = serviceData.GetProducts;
}
}
public async Task GetListProductsAsync()
{
ProductServiceClient service = new ProductServiceClient();
Product product;
try
{
var wcfCall = await service.GetListaAsync();
foreach (var item in wcfCall.List)
{
map product
this.ListaIos.Add(product);
}
}
catch(Exception)
{
throw new NotImplementedException();
}
}