Bonjour a tous,

Apres avoir fait quelques recherches infructueuses sur le sujet je me permet de vous poser la question.

Je développe un objet MenuItem qui sera intégré dans un menu plus complexe.
Ce MenuItem comporte une partie statique et une partie dynamique via le binding d'un arbre (ici une arborescence de fichiers).

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<MenuItem x:Class="View.ViewContextMenu.ViewSubMenuBackupNearline"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:wpfLib="clr-namespace:GraphicsLayer.GfxWPFLib;assembly=GfxWPFLib"
             xmlns:ctrlData="clr-namespace:Controler.CtrlData;assembly=CtrlFactory"
             xmlns:local="clr-namespace:View.ViewContextMenu" 
             Style="{DynamicResource MenuItemStyleBase}"
             x:Name="parentContext"
             ItemContainerStyleSelector="{DynamicResource DirectoryStyleSelector}"
             Header="{Binding ConverterParameter='DBCLIENT_MENU_BACKUPTO_NEARLINE###Backup to Near Line', Converter={wpfLib:GfxWPFMultilingueConverter}}">
    <MenuItem.Resources>
        <CompositeCollection x:Key="startContextmenu">
            <MenuItem  Header="{Binding ConverterParameter='DBCLIENT_MENU_SENDDEFAULTNEARLINE###Default Nearline', Converter={wpfLib:GfxWPFMultilingueConverter}}"/>
            <Separator/>
        </CompositeCollection>
        <Style x:Key="NearLineNodeStyle" TargetType="{x:Type MenuItem}" BasedOn="{StaticResource MenuItemStyleBase}">
            <Setter Property="Header" Value="{Binding Item.Name}"/>
            <Setter Property="ItemsSource" Value="{Binding Childs}"/>
            <Setter Property="Command" Value="{Binding ElementName=parentContext,Path=DataContext.BackupToNearline}"/>
            <Setter Property="CommandParameter" Value="{Binding .Item}"/>
        </Style>
        <local:DirectoryStyleSelector x:Key="DirectoryStyleSelector" NearLineNodeStyle="{StaticResource NearLineNodeStyle}"/>
    </MenuItem.Resources>
    <MenuItem.ItemsSource>
        <MultiBinding>
            <MultiBinding.Converter>
                <local:MultiCollectionConverter/>
            </MultiBinding.Converter>
            <Binding Source="{StaticResource startContextmenu}"/>
            <Binding ElementName="parentContext" Path="DataContext.DirectoryTreeHierarchy.Root.Childs" NotifyOnSourceUpdated="True" NotifyOnTargetUpdated="True"/>
        </MultiBinding>
    </MenuItem.ItemsSource>
</MenuItem>

Jusqu'ici tout fonctionne correctement.

Ce qui me pose problème c'est que je n'arrive a exécuter ma commande que sur les éléments de mon menu arbre qui n'ont plus d'enfants.

CAD :


menu1 > menu2
.............menu3 > menu5
.............menu4


Ma commande BackupToNearline est active pour menu2, menu4 et menu5.
Existe t'il une manière de contourner ce problème ?

D'avance merci.