0

WP7アプリでmvvmlightを使用しています。オブジェクトのコレクションのitemsourceを含むリストボックスがあります。リストボックスのItemTemplateDataTemplateには、ボタンが含まれています。ボタンには、バインドされたオブジェクトのプロパティを表示するテキストブロックが含まれています。アイテムをitemtemplateにバインドするテキストブロックまたはCommandParameterのデータコンテキストを変更せずに、コマンドをボタンに割り当てるにはどうすればよいですか?

<ListBox x:Name="listBox" ItemsSource="{Binding Main.SomeCollection}" >
     <ListBox.ItemTemplate>
          <DataTemplate>
            <Button 
                Command:ButtonBaseExtensions.Command="{Binding Main.MyCommand}"
                Cmmand:ButtonBaseExtensions.CommandParameter="{Binding}" />
                     <TextBlock Text="{Binding Title}"/>
            </Button>
          </DataTemplate>
      </ListBox.ItemTemplate>
</ListBox>

ありがとう

4

1 に答える 1

3

コマンドが配置されているDataContextへの参照を取得する必要があります。MVVM Lightでは、通常、ViewModelLocatorを介してこれを行います。ViewModelLocatorは(App.xaml内の)グローバルリソースとして公開されているため、次のことができます。

Command = "{Binding Main.MyCommand、Source = {StaticResource Locator}}"

もちろん、Blendで視覚的に行うこともできます。

乾杯、ローラン

于 2011-03-31T22:06:56.857 に答える