我们有以下XAML:
<DataTemplate x:Key="PictureMediaEditorInformationTemplate" DataType="mediaEditorInformation:PictureMediaEditorInformation">
<dxlc:LayoutGroup Orientation="Horizontal">
<dxlc:LayoutItem Label="{Binding LabelContent}">
<dxlc:LayoutGroup Orientation="Vertical">
<dxlc:LayoutItem Label="{Binding LabelTitle}" LabelPosition="Left">
<dxe:TextEdit EditValue="{Binding Title, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</dxlc:LayoutItem>
<dxlc:LayoutItem>
<dxe:ImageEdit ShowLoadDialogOnClickMode="Empty" ShowBorder="true" AllowDrop="True" Drop="PictureEditor_OnDrop"
Source="{Binding VisibleImage, Converter={StaticResource LexImageToImageConverter},
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="320" Height="320" ShowMenu="true">
<dxmvvm:Interaction.Behaviors>
<dxmvvm:EventToCommand EventName="MouseDoubleClick" Command="{Binding ViewPictureCommand}"/>
</dxmvvm:Interaction.Behaviors>
<dxe:ImageEdit.MenuTemplate>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
<dxe:ImageEditClearToolButton ImageSource="{Binding ButtonImage, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=dxlc:LayoutGroup}}"/>
我们无法找出正确的方法来为ImageSource绑定指定DataTemplate数据上下文。由于DataTemplate是使用以下代码在实例化的资源,因此可能会使情况变得复杂:
var template = (DataTemplate) lg.FindResource(item.DataTemplateName);
var uiElement = template.LoadContent() as FrameworkElement;
我们已经尝试了各种方法,但到目前为止都没有成功。我曾希望设置uiElement.Name可以与ElementName结合使用,但是它可能会失败,因为它是从ControlTemplate过渡到DataTemplate的。
NB:在实际代码中,该属性不称为“ Wibble”:)
答案 0 :(得分:0)
解决方案是在绑定中指定路径:
<dxe:ImageEditClearToolButton ImageSource="{Binding Path=DataContext.Wibble}"