У нас есть некоторый XAML, который может показаться странным, но, по-видимому, необходим для определения пары кнопок внутри стороннего элемента управления галереей лент.У галереи есть ItemsControl.ItemsSource, который XAML заполняет двумя элементами Array, эти элементы массива являются пользовательским типом, который имеет свойство bitmap и свойство ICommand.Все выглядит хорошо, но я не могу заставить свойство элемента массива связываться с чем-либо, что связано с контекстом данных окна.Я перепробовал все известные мне трюки, RelativeSource, ElementName, но безрезультатно.Ниже приведен XAML:
<ribbon:RibbonGallery.ItemsSource>
<x:Array Type="{x:Type customUITypes:ClickableImage}">
<customUITypes:ClickableImage x:Name="BitmapAddWorkflow" Command="{Binding ElementName=MainView, Path=DataContext.MyCommandOne}">
<customUITypes:ClickableImage.Bitmap>
<BitmapImage UriSource="/Images/GalleryWorkflowAdd.png"/>
</customUITypes:ClickableImage.Bitmap>
</customUITypes:ClickableImage>
<customUITypes:ClickableImage x:Name="BitmapDeleteWorkflow" Command="{Binding ElementName=MainView, Path=DataContext.MyCommandTwo}">
<customUITypes:ClickableImage.Bitmap>
<BitmapImage UriSource="/Images/GalleryWorkflowDelete.png"/>
</customUITypes:ClickableImage.Bitmap>
</customUITypes:ClickableImage>
</x:Array>
</ribbon:RibbonGallery.ItemsSource>
<ribbon:RibbonGallery.ItemTemplate>
<DataTemplate>
<Button Command="{Binding Command}">
<Image Margin="2" Source="{Binding Bitmap}" Stretch="None"/>
</Button>
</DataTemplate>
</ribbon:RibbonGallery.ItemTemplate>
Примечание: MainView - это имя окна, контекст данных на 100%, что я хочу, у меня нет проблем с другими привязками в этом представлении, только внутри этого массиваопределение.
Полагаю, я в замешательстве из-за иерархии объектов, к которым у меня есть доступ, но, на мой взгляд, независимо от того, связываюсь ли я с разметкой определения массива, я все равно должен быть в состояниинайти элемент и связать его с контекстом данных.Иногда кажется, что в XAML есть недочеты, которые приводят к часам царапин на голове, просто ради чего-то простого.Я понимаю, что могу жестко кодировать кое-что из этого в моей модели представления, то есть создавать элементы массива в коде и привязываться к нему, но я хочу избегать этого, поскольку это будет означать, что пути кода жестко закодированы в коде, я чувствую, что пути к изображениямобъявление разметки.
Любая помощь будет высоко ценится.
Спасибо
Пол