ComboBox的SelectionChange上的RowDetailsTemplate中的访问控制

时间:2011-02-09 09:28:33

标签: silverlight

我想访问一个CheckBox,以便在ComboBox的selectionChange事件中更改它的启用/禁用。两个控件都在rowDetailsTemplate中 我的例子:

<Grid x:Name="LayoutRoot" Background="White">
    <sdk:DataGrid  AutoGenerateColumns="False" >
        <sdk:DataGrid.Columns>
            <sdk:DataGridTextColumn  Visibility="Collapsed">
            </sdk:DataGridTextColumn>
        </sdk:DataGrid.Columns>
        <sdk:DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <StackPanel>
                    <sdk:DataGrid  Width="Auto" FlowDirection="RightToLeft">
                        <sdk:DataGrid.Columns>
                            <sdk:DataGridTemplateColumn >
                                <sdk:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <ComboBox Name="cbAction" SelectionChanged="cbAction_SelectionChanged" />
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellTemplate>
                            </sdk:DataGridTemplateColumn>
                            <sdk:DataGridTemplateColumn >
                                <sdk:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate >
                                        <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
                                            <CheckBox Name="cbChaluka" Width="30" VerticalAlignment="Center"  HorizontalAlignment="Center"  IsEnabled="False" IsChecked="{Binding _LOGI_GOT,Mode=TwoWay}" FlowDirection="LeftToRight">
                                            </CheckBox>
                                        </StackPanel>
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellTemplate>
                            </sdk:DataGridTemplateColumn>
                        </sdk:DataGrid.Columns>
                    </sdk:DataGrid>
                </StackPanel>
            </DataTemplate>
        </sdk:DataGrid.RowDetailsTemplate>
    </sdk:DataGrid>
</Grid>

这非常重要!!!!

2 个答案:

答案 0 :(得分:1)

小例子......

private CheckBox cbChaluka = null;

private void datagridname_LoadingRowDetails(object sender, DataGridRowDetailsEventArgs e)
{
    cbChaluka = e.DetailsElement.FindName("cbChaluka");
}

然后在另一个控件上的selectionchange事件中,您可以引用cbChaluka。

答案 1 :(得分:0)

我不知道为什么但是在银光中你不能直接从代码中直接访问控件你的情况下你可以注册复选框和onload的加载事件你可以在一些列表中全局存储这个对象代码然后从那里访问它全球清单。如果你有多行,那么你必须在加载时为每个复选框添加某种类型的唯一标识符,然后将其添加到全局列表中你可以创建一个唯一的guid并将其分配给checkbox的tag属性。

如果你有任何问题,那么请告诉我