同一个应用中不同实时图块的不同数据?

时间:2011-10-08 17:18:15

标签: windows-phone-7 live-tile

我正在尝试创建一个界面,用户可以在其中创建流式传输到应用程序磁贴,“辅助”磁贴和/或“第三”磁贴的数据。然而,正在发生的事情是,当我更新三个磁贴中的一个时,所有磁贴都会使用相同的数据流进行更新...这是一个带有活动磁贴的限制,还是我错过了什么?

这是我要做的事情的片段....

            ShellTile tile = null;
            StandardTileData tileData = null;

            switch (tileInfo.type)
            {
                case "Application":
                    tile = ShellTile.ActiveTiles.First();
                    tileData = new StandardTileData
                    {
                        BackBackgroundImage = new Uri(isoStoreTileImage, UriKind.Absolute)
                    };
                    // If the file already exists, update it.
                    if (tile != null)
                    {
                        tile.Update(tileData);
                    }
                    break;
                case "Secondary":
                    tile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("Secondary"));
                    tileData = new StandardTileData
                    {
                        BackgroundImage = new Uri(isoStoreTileImage, UriKind.Absolute)
                    };
                    // If the file already exists, update it.
                    if (tile != null)
                    {
                        tile.Update(tileData);
                    }
                    else
                    {
                        // Otherwise, create a new tile. 
                        ShellTile.Create(new Uri(tileInfo.uri, UriKind.Relative), tileData);
                    }
                    break;
                case "Tertiary":
                    tile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("Tertiary"));
                    tileData = new StandardTileData
                    {
                        BackgroundImage = new Uri(isoStoreTileImage, UriKind.Absolute)
                    };
                    // If the file already exists, update it.
                    if (tile != null)
                    {
                        tile.Update(tileData);
                    }
                    else
                    {
                        // Otherwise, create a new tile. 
                        ShellTile.Create(new Uri(tileInfo.uri, UriKind.Relative), tileData);
                    }
                    break;
            }

1 个答案:

答案 0 :(得分:1)

您对所有3个isoStoreTileImage实例使用相同的StandardTileData变量。这意味着你将覆盖相同的图像。

狂野猜测说你正在为所有3个图块使用相同的图像URI,因此使用相同的数据更新它们; - )