从ItemsControl.ItemTemplate中绑定到ItemsControl的Parent的正确方法是什么?
非工作尝试:
<ControlTemplate TargetType="{x:Type local:ParentUserControl}">
<ItemsControl ItemsSource="{Binding MyCollectionViewSource.View, RelativeSource={RelativeSource TemplatedParent}}"
IsTabStop="False"
Focusable="False">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:ChildUserControl BoundProp1="{Binding Prop1}"
BoundObjProp2="{Binding RelativeSource={RelativeSource
Mode=FindAncestor,
AncestorType={x:Type local:ParentUserControl}}}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ControlTemplate>
答案 0 :(得分:1)
绑定对我来说很好,但你没有指定Binding.Path
,你确定要直接绑定到控件而不是属性吗?
答案 1 :(得分:1)
我有类似的要求,以下内容对我有用:
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" ItemWidth="{Binding ItemWidth}" ItemHeight="{Binding ItemHeight}"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate >
<views:MyUserControl
Width="{Binding DataContext.ItemWidth, ElementName=PageRoot}"
Height="{Binding DataContext.ItemHeight, ElementName=PageRoot}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
P.S。我的应用程序是在XAML for WinRT
答案 2 :(得分:0)
我还没有找到解决这个问题的方法。最后,我不得不使用违反我想要的问题分离的工作,但按预期运行。我相信这归结为wpf框架中的一个问题,希望4.5能解决它。