WPF ItemsControl - ViewModel上的命令未从ItemsControl中触发

And*_*rke 6 data-binding wpf itemscontrol mvvm

我正在使用MV-VM并在我的ViewModel上有一个名为'EntitySelectedCommand'的命令.

我试图获取ItemsControl中的所有项目以触发此命令,但它无法正常工作.

我认为这是因为每个项目的"datacontext"是项目绑定的单个对象,而不是ViewModel?

有人能指出我正确的方向吗?

干杯,

安迪

<ItemsControl  ItemsSource="{Binding Path=LinkedSuppliers}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <Controls:EntityLabel Grid.Column="0" Grid.Row="0" Content="{Binding Name}" CurrentEntity="{Binding }" EntitySelected="{Binding EntitySelectedCommand}" ></Controls:EntityLabel>                
            <StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

Ken*_*art 13

你的怀疑是正确的.你有几个选择:

  1. 也可以EntitySelectedCommand从您的子视图模型中公开(也就是说,每个Supplier人都有这个属性).
  2. 更改绑定以使用a RelativeSource来伸出并使用DataContext父级ItemsControl.

  • 很好,非常感谢 - 按照你的建议让它与RelativeSource一起工作...... EntitySelected ="{Binding RelativeSource = {RelativeSource FindAncestor,AncestorType = {x:Type ItemsControl}},Path = DataContext.EntitySelectedCommand}" (3认同)