W jaki sposób przekazać do "ItemsControl.ItemTemplate" w ItemsControl DataContext elementu z listy?

0

W jaki sposób dostać się do właściwości z listy ModulesList ?
Kod Xaml

<ItemsControl ItemsSource="{Binding ElementName=hUserControl, Path=ModuleCollection.ModulesList}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <UC:ImageButton ImageType="{Binding Path=ModuleInfo.Icon}" Text="{Binding}" Foreground="White"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
Właściwość:
private IList<ModuleElement> modulesList;
        public IList<ModuleElement> ModulesList
        {
            get
            {
                return modulesList;
            }
            private set
            {
                modulesList = value;
                OnPropertyChanged("ModulesList");
            }
        }

Element:

public class ModuleElement : NotifyPropertyChanged, INotifyPropertyChanged
    {
        public ModuleElement(eModule Module)
        {
            ModuleInfo = new ModuleProperty(Module);
            SelectorInfo = new ModuleInSelectorProperty(Module);
            ViewerInfo = new ModuleInViewerProperty(Module);

            ModuleInfo.ModuleSelectionChanged += ModuleInfo_ModuleSelectionChanged;
        }

        private ModuleProperty moduleInfo;
        /// <summary>
        /// Informacje o module
        /// </summary>
        public ModuleProperty ModuleInfo
        {
            get
            {
                return moduleInfo;
            }
            private set
            {
                moduleInfo = value;
                OnPropertyChanged("ModuleInfo");
            }
        }

        private ModuleInSelectorProperty selectorInfo;
        /// <summary>
        /// Informacje dla selektora
        /// </summary>
        public ModuleInSelectorProperty SelectorInfo
        {
            get
            {
                return selectorInfo;
            }
            private set
            {
                selectorInfo = value;
                OnPropertyChanged("SelectorInfo");
            }
        }

        private ModuleInViewerProperty viewerInfo;
        /// <summary>
        /// Informacje dla viewera
        /// </summary>
        public ModuleInViewerProperty ViewerInfo
        {
            get
            {
                return viewerInfo;
            }
            private set
            {
                viewerInfo = value;
                OnPropertyChanged("ViewerInfo");
            }
        }

0

Rozwiązałem jednak ten problem, tak trochę dziwnie ale udało się:
screenshot-20180727014454.png

<UC:ImageButton 
                        ImageType="{Binding Path=DataContext.ModuleInfo.Icon, RelativeSource={RelativeSource AncestorType={x:Type ContentPresenter}}}" 
                        Text="{Binding Path=DataContext.ModuleInfo.ShortName, RelativeSource={RelativeSource AncestorType={x:Type ContentPresenter}}}"
                        Foreground="White"/>

1 użytkowników online, w tym zalogowanych: 0, gości: 1