Windows phone 7 无法访问列表框内的网格

Windows phone 7 无法访问列表框内的网格,windows-phone-7,Windows Phone 7,好的,所以我的问题是,我在ListBox中的DataTemplate中有网格。当我更改方向时,我需要更改网格的列定义,但不幸的是,当我将x:Name指定给网格时,我无法在后面的代码中访问它……是否有具体的方法来执行此操作? 我需要用名称“test”设置网格的列定义。 代码如下: <Grid x:Name="EmployeesGrid" Grid.Row="1" Height="550" VerticalAlignment="Bottom"> <Grid.Colu

好的,所以我的问题是,我在ListBox中的DataTemplate中有网格。当我更改方向时,我需要更改网格的列定义,但不幸的是,当我将x:Name指定给网格时,我无法在后面的代码中访问它……是否有具体的方法来执行此操作? 我需要用名称“test”设置网格的列定义。 代码如下:

<Grid x:Name="EmployeesGrid" Grid.Row="1" Height="550" VerticalAlignment="Bottom">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="280"/>
            <ColumnDefinition Width="195"/>
        </Grid.ColumnDefinitions>
        <ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" Grid.ColumnSpan="2" Margin="0,0,0,0">
            <ListBox Height="605" HorizontalAlignment="Left" Margin="0,6,0,0" Name="listBox1" VerticalAlignment="Top" Width="480">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid x:Name="test">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="280"/>
                                <ColumnDefinition Width="195"/>
                            </Grid.ColumnDefinitions>
                            <TextBlock Text="{Binding FullName}" FontSize="20" Grid.Column="0" HorizontalAlignment="Center"/>
                            <TextBlock Text="{Binding BranchName}" FontSize="20" Grid.Column="1" HorizontalAlignment="Center"/>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </ScrollViewer>
    </Grid>

试试这个

var grid = (Grid)listBox1.FindName("test");
如果从
列表框上的点击事件访问,请使用此

var listBox = (ListBox)sender;
var grid = (Grid)listBox.FindName("test");
var grid = (Grid)listBox1.FindName("test");
var textBlock = (TextBlock)grid.FindName("textBox's Name")
如果您想进一步从
网格
获取
文本块
,请使用此

var listBox = (ListBox)sender;
var grid = (Grid)listBox.FindName("test");
var grid = (Grid)listBox1.FindName("test");
var textBlock = (TextBlock)grid.FindName("textBox's Name")

希望这有帮助

您应该能够使用名称
EmployeesGrid
从代码隐藏处访问网格。你确定你在正确的文件中吗?这是每个
数据模板中的
网格吗?我需要访问“测试”网格。是的,它位于DataTemplatevar grid=(grid)listBox1.FindName(“测试”)中;很遗憾,返回null。。。我试图捕获Grid事件的加载,但我不知道如何编辑列宽。