2013-08-23 1 views
0

Iam travaillant sur dataTemplate dans Windows Phone 7. J'ai personnalisé Listbox avec un modèle de données. Maintenant, j'ai besoin d'obtenir les valeurs de la liste personnalisée. Veuillez vérifier le code ci-dessous.Récupérer de la valeur à partir d'un contrôle dans le téléphone Windows de DataTemplate 7

 <phone:PhoneApplicationPage.Resources> 
    <Style x:Key="Image_List" TargetType="ListBox"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ListBox"> 
        <Grid> 
         <Rectangle Fill="#FF030403" RadiusY="10" RadiusX="10" Stroke="#1BA1E2" StrokeThickness="2"/> 
         <ScrollViewer x:Name="ScrollViewer"> 
          <ItemsPresenter Height="Auto"/> 
         </ScrollViewer> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</phone:PhoneApplicationPage.Resources> 
    <ListBox BorderBrush="#1BA1E2" Name="Image_Listbox" Margin="5,53,6,6" Style="{StaticResource Image_List}"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <Border CornerRadius="5" BorderBrush="#1BA1E2" BorderThickness="1" Margin="3,1,0,0" Height="69" Width="445"> 
         <StackPanel Margin="0,0,0,0" Background="Transparent" Orientation="Horizontal" Height="69" Width="400"> 
          <CheckBox Name="Images_Check" Margin="0,0,0,0" Content="" Height="67" HorizontalAlignment="Left"/> 
          <TextBlock TextAlignment="Left" FlowDirection="LeftToRight" Width="Auto" FontSize="22" Text="{Binding UBindData}" Height="40" /> 
         </StackPanel> 
        </Border> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

Iam obtenant le modèle UI correctement. L'utilisateur vérifiera les éléments requis dans la case à cocher fournie. Maintenant, j'ai besoin d'obtenir les éléments cochés dans mon code. quelqu'un peut-il m'aider à sortir de là? Comment obtenir les éléments vérifiés et ItemValue par l'utilisateur.

Merci d'avance.

Répondre

1

J'ai eu la solution après une guerre de jour. Ici il va. J'ai eu la solution du site de développeur de Nokia. vous pouvez vérifier si la case à cocher à l'intérieur de datatemplate est cochée et sa valeur Textblock correspondante.

//Variables to store the count of checked Checkboxes and their data 
    public string option_selected = ""; 
    public int check_count = 0; 

    //SearchElement populates above variables for checkboxes in specified "targeted_control" 
    public void SearchElement(DependencyObject targeted_control) 
    { 
     var count = VisualTreeHelper.GetChildrenCount(targeted_control); // targeted_control is the listbox 
     if (count > 0) 
     { 
      for (int i = 0; i < count; i++) 
      { 
       var child = VisualTreeHelper.GetChild(targeted_control, i); 
       if (child is CheckBox) // specific/child control 
       { 
        CheckBox targeted_element = (CheckBox)child; 
        if (targeted_element.IsChecked == true) 
        { 
         if (targeted_element.Tag!= null) 
         { 
          // get the value associated with the "checked" checkbox 
          option_selected = targeted_element.Tag.ToString(); 
         } 
         // count the number of "Checked" checkboxes 
         //check_count = check_count + 1; 
         return; 
        } 
       } 
       else 
       { 
        SearchElement(child); 
       } 
      } 
     } 
     else 
     { 
      return; 
     } 
    } 
Questions connexes