3

Command を ViewModel (私の Window の DataContext) にバインドしItemsSourceたまま、 toを追加しようとしています。MenuItemこれまでのところ、私はそれを機能させる方法を考え出していません。ItemsSource が追加される前は、バインディングは問題ありません。バインドしようとしているコレクションは、StaticResource. 誰でもこれで私を助けることができますか?

<MenuItem Command="{Binding OpenTeamPage}"
          DisplayMemberPath="Name"
          Header="Teams"
          ItemsSource="{Binding Teams,
                                Source={StaticResource Container}}" />

私はこれとそのバリエーションを使ってみましたが、うまくいきませんでした:

Command="{Binding OpenTeamPage,
                  RelativeSource={RelativeSource AncestorType=Window},
                  Mode=Default}"

Command を ViewModel にバインドしながら、この ItemsSource を使用する方法を誰かに教えていただければ、非常にありがたいです。コマンドをチームモデルに入れることもできると思いますが、可能であれば避けたいと思います。

編集:私の問題を明確にするために、ItemsSource を配置すると、ViewModel のコマンドはまったく起動しません。ItemsSource がないと、コマンドが起動します。ItemsSource を持っていても、コマンドを実行できるようにしたいと考えています。

編集:

public class GameContainer
{
    static GameContainer()
    {
        Teams = new ObservableCollection<Team>();
    }

    public static ObservableCollection<Team> Teams { get; set; } 
}

App.xaml で:

<data:GameContainer x:Key="Container" />

プログラムが開始されると、コレクションが設定されます。

これが機能するようになったら、できれば CommandParameter を介して、選択したチームを Viewmodel に渡し、選択したチームに関する情報を表示することが私の目標です。

編集:元の投稿で間違っていました。Viewmodel からのバインドされたコレクションも機能しません。

4

2 に答える 2