0

我在 WP7 应用程序中使用 mvvm light。我有一个包含对象集合的 itemsource 的列表框。列表框的 ItemTemplate DataTemplate 包含一个按钮。该按钮包含一个显示绑定对象的属性的文本块。如何在不更改数据上下文、文本块或将项目绑定到项目模板的命令参数的情况下将命令分配给按钮?

<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

您需要获取对 Command 所在的 DataContext 的引用。在 MVVM Light 中,我们通常通过 ViewModelLocator 执行此操作。由于 ViewModelLocator 公开为全局资源(在 App.xaml 中),您可以执行以下操作:

Command="{绑定 Main.MyCommand, Source={StaticResource Locator}}"

当然,您也可以在 Blend 中直观地做到这一点。

干杯,劳伦特

于 2011-03-31T22:06:56.857 回答