2014-09-05 45 views
0

我是Windows 8.1开发新手。 我创建下面的按钮页面的XAML页面Windows 8地铁应用程序:访问按钮属性

GroupedItemsPage.xaml.cs 
GroupedItemsPage.xaml 


<Button Style="{StaticResource mystyle}" Click="ItemView_ItemClick" x:Name="Testing"> 

上我在想,在XAML页面的页面加载我将能够做这样的事情能够访问按钮属性 .. Testing.property就像我们通常在Windows开发环境中做的那样。这没有发生。我希望能够以编程方式设计一些按钮。

如何获取.cs文件中按钮的属性?

Thanks. Here is the xaml page below. 

     <GridView 
        x:Name="itemGridView" 
        AutomationProperties.AutomationId="ItemGridView" 
        AutomationProperties.Name="Grouped Items" 
        Grid.RowSpan="2" 
        Padding="116,137,40,46" 
        ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}" 
        SelectionMode="None" 
        IsSwipeEnabled="false" 
     > 
        <GridView.ItemTemplate> 
         <DataTemplate> 
          <Grid HorizontalAlignment="Left" Width="Auto" Height="Auto" > 
            <Image Source="{Binding ImagePath}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/> 
           </Border> 
           <StackPanel VerticalAlignment="Bottom" Background="{ThemeResource ListViewItemOverlayBackgroundThemeBrush}"> 
            <TextBlock Text="{Binding Title}" Foreground="{ThemeResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextBlockStyle}" Height="60" Margin="15,0,15,0"/> 
            <TextBlock Text="{Binding Subtitle}" Foreground="{ThemeResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextBlockStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/> 
           </StackPanel>--> 
           <Button Style="{StaticResource contactSquarePref}" Click="ItemView_ItemClick" x:Name="Testing"> 
            <StackPanel Margin="5" > 
             <TextBlock Tag="cntCustName" Style="{ThemeResource CntNormalTextBlockStyle}" Text="{Binding Name }"/>        
             <TextBlock Tag="cntCatCode" Style="{ThemeResource CntLrgTextBlockStyle}" Text="{Binding Address}"/>         
            </StackPanel> 
           </Button> 
          </Grid> 
         </DataTemplate> 
        </GridView.ItemTemplate> 
        <GridView.ItemsPanel> 
         <ItemsPanelTemplate> 
          <ItemsWrapGrid GroupPadding="0,0,70,0"/> 
         </ItemsPanelTemplate> 
        </GridView.ItemsPanel> 
        <GridView.GroupStyle> 
         <GroupStyle> 
          <GroupStyle.HeaderTemplate> 
           <DataTemplate> 
            <Grid Margin="0,0,0,2"> 
             <Button Foreground="{ThemeResource ApplicationHeaderForegroundThemeBrush}" 
              AutomationProperties.Name="Group Title" 
              Click="Header_Click" 
              Style="{StaticResource TextBlockButtonStyle}" > 
              <StackPanel Orientation="Horizontal"> 
               <TextBlock Text="{Binding ContactType}" Margin="0,-11,10,10" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap" /> 
               <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-11,0,10" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap" /> 
              </StackPanel> 
             </Button> 
            </Grid> 
           </DataTemplate> 
          </GroupStyle.HeaderTemplate> 
         </GroupStyle> 
        </GridView.GroupStyle> 
       </GridView> 

回答

0

这取决于您的XAML。如果你的按钮仅仅是你的页面的子元素(即你的逻辑树的一部分)或命名资源,那么就没有问题了,构建时会有一个代码生成过程,它会创建必需的字段case Button Testing),并在InitializeComponent()生成的方法中找到所需的元素。

但是,如果你的按钮是控制模板获得参考你的元素的唯一途径的一部分GetTemplateChild()(如果你正在写自己的控制,因为这种方法是受保护)或人工观察视觉树。

因此,如果您的页面的子元素存在问题,请将您所有的XAML标记过滤掉,因为上述问题中的行不足以找到解决方案。但是,如果您已经在控制模板中定义了按钮,请查看第二段。

相关问题