【问题标题】:How to access element (Combo Box) in XAML from code behind如何从后面的代码访问 XAML 中的元素(组合框)
【发布时间】:2013-02-05 03:24:13
【问题描述】:

如何访问 XAML 中嵌套在 GridViewColumn.CellTemplate 中的控件?通过访问组合框,我想在后面的代码中设置其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>

我已将组合框命名为combTrueFalse,并尝试在后面的代码中引用它,但找不到。

【问题讨论】:

  • 组合框中的项目会发生变化还是只是静态项目
  • 我没有答案,但可以告诉你为什么你不能在后面的代码中访问它。这是因为这个组合不在主控件中,而是GridViewColumn 的数据模板的一部分。
  • sa_ddam213 - 组合框中的项目将绑定到数据集合,因此它不是静态的。我也尝试将 TEXT 属性设置为静态值,但 nth 显示任何想法?

标签: c# wpf xaml data-binding


【解决方案1】:

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

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

mainWindow 类包含数据类的变量。

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

意思是说我已经将组合框的项目设置为一个包含集合的类,而不是来自后面的代码。

 <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>

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

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2013-10-06
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多