Привязка к свойству просмотра модели из ItemsControl.ItemTemplate

У меня есть коллекция объектов и команда в моей ViewModel.

Я хочу отобразить гиперссылку для каждого из объектов в коллекции и установить команду каждой гиперссылки на ту же команду, передача objectID в качестве CommandParemeter. например,

// View Model
public class MyViewModel : ViewModelBase
{
  // Raises PropertyChanged event, ommited here
  public List<MyClass> MyList {....}

  public RelayCommand<int> MyCommand {....}
}

Я установил DataContext моего UserControl в вышеупомянутый класс ViewModel. XAML для этого UserControl выглядит следующим образом:

<UserControl>
  <ItemsControl ItemsSource="{Binding Path=MyList}">
    <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
        <StackPanel />
      </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    <ItemsControl.ItemTemplate>
      <DataTemplate>
        <HyperlinkButton Content="{Binding Path=Description}" Command="{Binding Path=MyCommand}" CommandParameter="{Binding Path=MyClassID}"/>
      </DataTemplate>
    </ItemsControl.ItemTemplate>
  </ItemsControl>
</UserControl>

Описание содержимого гиперссылки отображается правильно, но команда никогда не запускается, я думаю, это потому, что она ищет команду в объекте MyClass?

Как я могу привязаться к UserControls DataContext.MyCommand, а не к MyClass.MyCommand, который он ищет?

5
задан Fermin 8 December 2010 в 11:15
поделиться