【发布时间】:2011-05-22 04:05:59
【问题描述】:
我的 ViewModel 中有一组对象和一个命令。
我想为集合中的每个对象显示一个超链接,并将每个超链接的 Command 设置为相同的命令,将 objectID 作为 CommandParemeter 传递。例如
// View Model
public class MyViewModel : ViewModelBase
{
// Raises PropertyChanged event, ommited here
public List<MyClass> MyList {....}
public RelayCommand<int> MyCommand {....}
}
我将 UserControl 的 DataContext 设置为上述 ViewModel 类。此 UserControl 的 XAML 如下:
<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?
【问题讨论】:
标签: silverlight data-binding xaml silverlight-4.0