我有一个FlipView这表明雕像。雕像包含一个Path到他们的形象。
将此属性绑定到常规 DataTemplate 就可以了。 (下面的代码工作正常)
</DataTemplate>
<Canvas x:Name="DefaultImageCanvas" Width="660" Height="372">
<Image Name="imageFlip" Width="660" Height="372" Source="{Binding Path}"
Stretch="Uniform" />
</Canvas>
</DataTemplate>
但是当使用我的 UserControl 时,它不再起作用:
<DataTemplate>
<local:FigurineStickerUserControl Width="660" Height="372"
FigurinePath="{Binding Path}"/>
</DataTemplate>
FigurinePath DP 从未设置。 (如果我使用硬编码字符串,那就没问题了。)
这是输出中的错误:
错误:BindingExpression 路径错误:在“Com.Test.ViewModels.UserControl.FigurineStickerUserControlViewModel、eSmart.ViewModels、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null”上找不到“Path”属性。 BindingExpression: Path='Path' DataItem='Com.Test.ViewModels.UserControl.FigurineStickerUserControlViewModel, Test.ViewModels, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null';目标元素是 'Com.Test.Views.FigurineStickerUserControl' (Name='pageRoot');目标属性是“FigurinePath”(类型“Object”)
看起来 DataTemplate 尝试将 Figurine 分配为我的 UserControl 的 DataContext,然后从我的 UC 的 DataContext 中检索属性。但我的 UC 有自己的 DataContext(其 ViewModel),我不想删除它。
不幸的是,对于 WinRT/UWP,我无法使用绑定来执行 FindAncestor 技巧。我已经尝试过这个:(FlipFigurine 是 FlipView 对象)
<local:FigurineStickerUserControl Width="660" Height="372"
FigurinePath="{Binding SelectedItem.Path, ElementName=FlipFigurine}"/>
这不起作用。即使将 DP 更改为对象并尝试以下操作也不起作用,DP 的 setter 也永远不会被调用。但日志中没有错误。
FigurinePath="{Binding SelectedItem, ElementName=FlipFigurine}"
有没有办法访问实际的 Figurine 对象并简单地绑定它Path财产给小雕像路径我的加州大学的财产?