none
Binding entre ma ToolBar et mon tabControl RRS feed

  • Question

  • Bonjour

    je n'arrive pas à avoir les commades déclarés dans les TabItemViewModels de mon TabControl,

     

    <Border DataContext="{Binding}">
        <ToolBarTray x:Name="myToolBarTray"
               Background="{StaticResource TabItemElementsColorUp}"
               HorizontalAlignment="Stretch">
          
          <ToolBar x:Name="myToolBarControl" AllowDrop="True" HorizontalAlignment="Stretch">
            <TextBox Text="{Binding Path=WorkSpaceMW.SelectedMovement.TitleToDisplay}" Width="80" Background="AliceBlue"/>
            <!-- NewCommand -->
            <Button Command="{Binding Path=WorkSpaceMW.SelectedMovement.NewCommand}">
              <Button.Content>
                <StackPanel Orientation="Horizontal">
                  <Image Source="/ITSProject.UIProjectV4;component/Images/TaskForAll/New.png" Width="16" Height="16" Margin="2"/>
                  <TextBlock Text="Nouveau" VerticalAlignment="Center"/>
                </StackPanel>
              </Button.Content>
            </Button>

     

    pour vérifier encore une autre fois, j'ai ajouté la ligne en gras dans le code ci-dessus,

    sachant que je déclare pour chaque ViewModel de chaque Item une propriété : TitleToDisplay

    et voici le Code Xaml du tabControl:

    <TabControl x:Name="Tc"
            DataContext="{Binding}"
            ItemsSource="{Binding Path=WorkSpaceMW.ObColMovements}"
            SelectedItem="{Binding Path=WorkSpaceMW.SelectedMovement, Mode=OneWay}"
            Style="{DynamicResource TabControlMovementStyle}"
            ItemContainerStyle="{DynamicResource IabItemMovementClosableStyle}"
            IsSynchronizedWithCurrentItem="True"
            >
      </TabControl>


    c quoi le problème ?

    Merci

    dimanche 12 juin 2011 09:51

Réponses

  • Hello,

     

    Dans chaue TabItem tu as un élément de la collection ObColMovements comme DataContext. Si tu veux te binder à la commande du ViewModel ou est la collection elle même, tu peux utiliser ce code:

    <!-- NewCommand -->
        <Button Command="{Binding Path=DataContext.WorkSpaceMW.SelectedMovement.NewCommand, ElementName=Tc}">
         <Button.Content>
          <StackPanel Orientation="Horizontal">
           <Image Source="/ITSProject.UIProjectV4;component/Images/TaskForAll/New.png" Width="16" Height="16" Margin="2"/>
           <TextBlock Text="Nouveau" VerticalAlignment="Center"/>
          </StackPanel>
         </Button.Content>
        </Button>

    Bon courage,


    Jonathan ANTOINE - http://wpf-france.fr - http://blog.lexique-du-net.com
    jeudi 4 août 2011 07:52
    Modérateur

Toutes les réponses

  • Hello,

     

    Dans chaue TabItem tu as un élément de la collection ObColMovements comme DataContext. Si tu veux te binder à la commande du ViewModel ou est la collection elle même, tu peux utiliser ce code:

    <!-- NewCommand -->
        <Button Command="{Binding Path=DataContext.WorkSpaceMW.SelectedMovement.NewCommand, ElementName=Tc}">
         <Button.Content>
          <StackPanel Orientation="Horizontal">
           <Image Source="/ITSProject.UIProjectV4;component/Images/TaskForAll/New.png" Width="16" Height="16" Margin="2"/>
           <TextBlock Text="Nouveau" VerticalAlignment="Center"/>
          </StackPanel>
         </Button.Content>
        </Button>

    Bon courage,


    Jonathan ANTOINE - http://wpf-france.fr - http://blog.lexique-du-net.com
    jeudi 4 août 2011 07:52
    Modérateur
  • Bonjour,

    Est-ce que vous avez testé la solution proposée ? Merci de partager avec nous les résultats,afin que d'autres personnes avec le même problème puissent profiter de cette solution.


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    dimanche 7 août 2011 09:46
    Modérateur