разные данные для разных живых плиток в одном приложении? - PullRequest
0 голосов
/ 08 октября 2011

Я пытаюсь создать интерфейс, где пользователь может создавать данные, которые передаются на плитку приложения, «вторичную» плитку и / или «третичную» плитку. Однако происходит следующее: когда я обновляю одну из трех плиток, ВСЕ плитки обновляются тем же потоком данных ... Это ограничение действует для живых плиток или я что-то упускаю?

Вот фрагмент того, что я пытаюсь сделать ....

            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 Ответ

1 голос
/ 10 октября 2011

Вы используете одну и ту же переменную isoStoreTileImage для всех 3 StandardTileData экземпляров. Это означает, что вы будете переопределять одно и то же изображение.

Дикая догадка говорит, что вы используете один и тот же URI изображения для всех 3 плиток и, таким образом, обновляете их теми же данными; -)

...