如何从代码后面访问XAML中的元素(组合框)

时间:2013-02-05 03:24:14

标签: c# wpf xaml data-binding

如何访问嵌套在GridViewColumn.CellTemplate中的XAML中的控件?通过访问组合框,我想在后面的代码中设置ItemsSource

代码:

<GridViewColumn Width="80">
    <GridViewColumnHeader Content="UseCLUT"/>
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock Text="{Binding Path=UseCLUT}" Style="{StaticResource GridBlockStyle}"/>
                <ComboBox x:Name="combTrueFalse" SelectedItem="{Binding Path=UseCLUT}" Style="{StaticResource GridEditStyle}" />
            </Grid>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

我已将comboBox命名为combTrueFalse并尝试在后面的代码中引用它,但无法找到它。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

我已将组合框的集合设置为包含combox选择集合的类。

mainWindow类包含数据类的变量。

 ItemsSource="{Binding ElementName=mainWindow, Path=data.comboxTFSmall}"

意思是说我已经将combox的项目设置为包含集合的Class而不是后面的代码。

 <GridViewColumn Width="80" >
                                <GridViewColumnHeader Content="UseCLUT"/>
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <Grid>
                                            <TextBlock Text="{Binding Path=UseCLUT, Mode=TwoWay}" Style="{StaticResource GridBlockStyle}"/>
                                            <ComboBox ItemsSource="{Binding ElementName=mainWindow, Path=data.comboxTFSmall}" SelectedValue="{Binding Path=UseCLUT}" Style="{StaticResource GridEditStyle}" />
                                        </Grid>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>

如果您发现我的解释是误导性的,请纠正我。

问候