У меня есть FlipView, который показывает Статуэтки. Фигурки содержат Путь к их изображению.Связывание с UserControl DP из DataTemplate UWP
Связывание этого свойства с обычным 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 никогда не устанавливается. (. Если я использую жёстко прописанную строку, его штраф) Здесь ошибка в выводе:
Error: BindingExpression path error: 'Path' property not found on 'Com.Test.ViewModels.UserControl.FigurineStickerUserControlViewModel, eSmart.ViewModels, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. BindingExpression: Path='Path' DataItem='Com.Test.ViewModels.UserControl.FigurineStickerUserControlViewModel, Test.ViewModels, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'; target element is 'Com.Test.Views.FigurineStickerUserControl' (Name='pageRoot'); target property is 'FigurinePath' (type 'Object')
Похоже DataTemplate пытается присвоить Фигурка как DataContext моего UserControl, а затем получить имущество от мой DataContext UC. Но мой UC имеет свой собственный DataContext (его ViewModel), и я не хочу его удалять.
К сожалению, с WinRT/UWP нет трюков FindAncestor, которые я могу сделать с привязкой. Я уже пробовал это: (FlipFigurine быть объектом FlipView)
<local:FigurineStickerUserControl Width="660" Height="372"
FigurinePath="{Binding SelectedItem.Path, ElementName=FlipFigurine}"/>
Это не работает. Даже изменение DP на объект и попытка выполнения следующих действий не работают, установщик DP никогда не вызывается. Однако ошибок в журнале нет.
FigurinePath="{Binding SelectedItem, ElementName=FlipFigurine}"
Есть ли способ, чтобы получить доступ к реальному объекту Фигурки и просто связать его Пути свойства к FigurinePath свойства моей UC ??
Спасибо Микаэля! Я не нашел времени, чтобы проверить его, но похоже, что это единственный способ пойти, хотя я надеялся на более элегантный способ (через xaml). Просто деталь: у меня нет ничего связанного с ЦБ, и поскольку мы передаем Путь непосредственно VM, DP теперь бесполезен, не так ли? – jujujuijk