2013-05-29 2 views
0

Как я могу добавить много кнопок в сетку для первого элемента и текстового поля для другой сетки во втором элементе динамически?динамически добавлять кнопку или изображение из кода позади в pivotitem

НЕ XAML

Ican't найти имя GridItem - имя не существует в коде позади :( Я пытался найти Визуальное дерево Helper :(

PivotItem pivotVHT = (PivotItem)mainSecondPivot.SelectedItem; 

    foreach (var element in VisualTreeHelper.FindElementsInHostCoordinates(new Rect(20, 0, 480, 700), pivotVHT)) 
    { 
     if (element is TextBlock) 
     { 
      Debug.WriteLine("{0}", ((TextBlock)element).Text); 

      TextBlock test = ((TextBlock)element); 
      test.Text = "TEST"; 
         } 

    } 

VisualTreeHelper изменяя текст только mainFirstPivot, визуальный помощник дерево не видит mainSecondPivot

XAML:

<controls:Pivot Title="Photo Gallery" Name="mainSecondPivot" > 
      <controls:Pivot.HeaderTemplate> 
       <DataTemplate> 
        <Grid 
          x:Name="PivitGrid" 
         > 
          <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="1*"/> 
          </Grid.ColumnDefinitions> 
          <Grid.RowDefinitions> 
          <RowDefinition Height="1*"/> 
          </Grid.RowDefinitions> 
        <Image 
         Name="PivotImageGalery" 
         Source="{Binding imgSrc}" 
         > 

        </Image> 
        <TextBlock 
         x:Name="TextBlockPivot" 
         Text="{Binding textBlockPivotName}" 
        > 


        </TextBlock> 
       </Grid> 
       </DataTemplate> 
      </controls:Pivot.HeaderTemplate> 
      <controls:Pivot.ItemTemplate> 
       <DataTemplate> 
    <ScrollViewer 
       Name="SVName" 
       Width="Auto" 
       VerticalScrollBarVisibility ="Hidden" 
       HorizontalScrollBarVisibility="Disabled" 
        > 
        <Grid 
        x:Name="GridItem" 
         > 
          **HERE** 

        </Grid> 
</ScrollViewer> 
       </DataTemplate> 
      </controls:Pivot.ItemTemplate> 
    </controls:Pivot> 

C#

public static class SelectedIndex 
{ 
    public static int SelectedIndexInt = 0;// OR SOME NUMBER 
} 

public class IListPivot 
     { 

       public ImageSource imgSrc { get; set; } 
       public String textBlockPivotName { get; set; } 

      } 

      public secondPage() 
     { 
        InitializeComponent(); 


        IList<IListPivot> PivotList = new List<IListPivot>(); 


     for (z = 0; z <= 7; z++) 
      { 
       PivotList.Add(new IListPivot() 
      { 
       imgSrc = new System.Windows.Media.Imaging.BitmapImage(new Uri("URI", UriKind.Relative)), 
       textBlockPivotName = "TEXT" 
      }); 
      } 
      mainSecondPivot.ItemsSource = PivotList; 

      mainSecondPivot.Loaded += new RoutedEventHandler (PivotLoaded); 
      mainSecondPivot.SelectedIndex = SelectedIndex.SelectedIndexInt 
     } 

       public void PivotLoaded(object sender, EventArgs e) 


      { 
        PivotItem pivotItemVHT = (PivotItem)mainSecondPivot.ItemContainerGenerator.ContainerFromIndex(SelectedIndex.SelectedIndexInt); 

        var root = VisualTreeHelper.GetChild(((VisualTreeHelper.GetChild(pivotItemVHT, 0) as Grid).Children[0] as ContentPresenter), 0) as FrameworkElement; 
        Debug.WriteLine(" root " + root); 
        Debug.WriteLine(" root Name " + root.Name); 
        ScrollViewer scr = (ScrollViewer)root; 
        TextBox BoxText1 = new TextBox(); 
        BoxText1.Text = a.ToString(); 
        scr.Content = BoxText1; 

} 

добавить только к одному от всех элементов HELP

ответ

0

Вот как получить именованный элемент из внутри PivotItem:

public FrameworkElement GetPivotElement(int pivotIndex, string name) 
{ 
    var pivot = mainSecondPivot.ItemContainerGenerator.ContainerFromIndex(pivotIndex); 
    var root = VisualTreeHelper.GetChild(((VisualTreeHelper.GetChild(pivot, 0) as Grid).Children[0] as ContentPresenter), 0) as FrameworkElement; 
    return root.FindName(name); 
} 
+0

большое спасибо, очень полезно для меня, но код находит только первый элемент Itema, другие элементы не могут видеть –

+0

Я могу найти всю часть PivitGrid, но GridItem только из первых элементов сводной информации. pivotIndex изменилось на 0,1,2,3 ... не помогло –

+0

Это должно определенно работать, я просто попробовал. Можете ли вы опубликовать свое использование? – pantaloons

Смежные вопросы