我使用ItemsControl,以这种方式煮沸:
<UserControl.Resources>
<DataTemplate x:Key="HomeItemTemplate">
<UserControl Command="{Binding DataContext.MyCommand}"/>
</DataTemplate>
</UserControl.Resources>
<ItemsControl ItemTemplate="{StaticResource HomeItemTemplate}" />
现在,这个ItemsControl所在的视图有一个DataContext。在那个DataContext中,我有我的MyCommand。我必须在多个地方使用这个ItemsControl,因此直接引用DataTemplate中的ElementName是我不想做的事情。
我尝试了TemplatedParent和RelativeSource,不同的东西,我不知道我应该做什么。我怎么写这个,以便我的UserControl可以绑定到ItemsControl的DataContext?
答案 0 :(得分:0)
如果资源字典中有 DataTemplate / ItemTemplate ,您可能希望使用{RelativeSource FindAncestor}
绑定模式绑定到父<的属性< EM> ItemsControl的:
<UserControl.Resources>
<DataTemplate x:Key="HomeItemTemplate">
<UserControl Command="{Binding DataContext.MyCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}}}"/>
</DataTemplate>
</UserControl.Resources>