0

wp7用の小さなアプリを作成していますが、参照から取得しようとするとエラーが発生します。

次のようなコード:

   private void refreshExistingShellTile()
    {
        using (IEnumerator<ShellTile> enumerator = ShellTile.get_ActiveTiles().GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                ShellTile current = enumerator.get_Current();
                if (null != current.get_NavigationUri() && !current.get_NavigationUri().ToString().Equals("/"))
                {
                    Black_n_Gold.Entities.Tile tile = App.CurrentApp.tileService.findById(App.CurrentApp.tileService.getTileId(current.get_NavigationUri().ToString()));
                    if (tile != null && tile.id == this.customizedTile.id)
                    {
                        current.Delete();
                        this.createShellTile(this.customizedTile);
                    }
                }
            }
        }
    } 

そして私はこのエラーがあります:

'Microsoft.Phone.Shell.ShellTile.ActiveTiles.get': cannot explicitly call operator or accessor
'Microsoft.Phone.Shell.ShellTile.NavigationUri.get': cannot explicitly call operator or accessor
'System.Collections.Generic.IEnumerator<Microsoft.Phone.Shell.ShellTile>.Current.get': cannot explicitly call operator or accessor

プロパティを追加または設定しようとしたときに同じエラーが発生し、Webを調べましたが、解決策が見つかりませんでした。

4

1 に答える 1

2

基になるメソッド名を使用しています。これの代わりに:

ShellTile current = enumerator.get_Current();

あなたがしたい:

ShellTile current = enumerator.Current;

など。ただし、明示的にetcを呼び出す代わりに、ループを使用することお勧めします。foreachGetEnumerator

private void refreshExistingShellTile()
{
    foreach (ShellTile current in ShellTile.ActiveTiles)
    {
        Uri uri = current.NavigationUri;
        if (uri != null && uri.ToString() != "/")
        {
            Black_n_Gold.Entities.Tile tile = App.CurrentApp.tileService
                .findById(App.CurrentApp.tileService.getTileId(uri.ToString());
            if (tile != null && tile.id == customizedTile.id)
            {
                current.Delete();
                createShellTile(customizedTile);
            }
        }
    }
}

また、.NET の命名規則では、findByIdetc を PascalCased にする必要があることにも注意してください。

  • FindById
  • GetTileId
  • CreateShellTile
于 2013-01-06T19:41:32.837 に答える