2010-07-08 9 views
1

Dans mon application SL4, j'ai une classe appelée Images qui a deux propriétés (ImagePath, ImageName) et une méthode getImages() qui retrace la liste ObservableCollection de toutes les images. Je dois créer une ressource sur ma page afin que, lorsqu'un DataTemplate est chargé dynamiquement, il puisse avoir accès aux images dans l'un de ses champs ComboBox.Silverlight 4 et Page.Resources Binding

Comment puis-je faire cela?

<Page.Resources> 
<local:Images x:Key="MyImages"/> 
</Page.Resources> 

Mais dans mon code derrière le fichier que je ne peux pas accéder aux MesImages

+0

Bienvenue dans SO, veuillez prendre quelques minutes pour lire la FAQ et la documentation Markdown (dont un synoptique utile est disponible dans la marge de droite lors de l'édition d'une question). – AnthonyWJones

+0

Veuillez détailler le terme "DataTemplate est chargé dynamiquement"? – AnthonyWJones

Répondre

0

Vous avez 3 options

1. Utiliser le fichier de ressources de l'application globale.

<Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Assets/StylesA.xaml"/> 
       <ResourceDictionary Source="Assets/StylesB.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 

Et au sein StylesA.xaml vient de mettre le style que vous devez utiliser

<StackPanel> 
      <StackPanel.Resources> 
       <Style x:Key="HeaderStyle" TargetType="TextBlock"> 
        <Setter Property="FontWeight" Value="Bold"></Setter> 
        <Setter Property="FontSize" Value="12"></Setter> 
       </Style> 
      </StackPanel.Resources>    
      <TextBlock Style="{StaticResource HeaderStyle}"></TextBlock> .... 

2. Utilisez la section Ressources de contrôle local.

<StackPanel> 
      <StackPanel.Resources> 
       <Style x:Key="HeaderStyle" TargetType="TextBlock"> 
        <Setter Property="FontWeight" Value="Bold"></Setter> 
        <Setter Property="FontSize" Value="12"></Setter> 
       </Style> 
      </StackPanel.Resources>    
      <TextBlock Style="{StaticResource HeaderStyle}"></TextBlock> .... 

3. Il suffit d'utiliserPage.Resourcesau sein de votre page

<navigation:Page.Resources> 
     <Style x:Key="ButtonFocusVisual"> 
      <Setter Property="Control.Template"> 
       <Setter.Value> 
        <ControlTemplate> 
         <Border> 
          <Rectangle Margin="2" StrokeThickness="1" Stroke="#60000000" StrokeDashArray="1 2" /> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style>  
    </navigation:Page.Resources> 

J'espère que cela vous aidera. :)