我想访问一个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>这非常重要!
发布于 2011-09-23 00:41:30
小例子..。
private CheckBox cbChaluka = null;
private void datagridname_LoadingRowDetails(object sender, DataGridRowDetailsEventArgs e)
{
cbChaluka = e.DetailsElement.FindName("cbChaluka");
}然后,在另一个控件上的selectionchange事件中,您可以引用cbChaluka。
发布于 2011-02-09 18:47:05
我不知道为什么,但在silverlight中,你不能直接从代码中交替访问控件,在你的例子中,你可以注册checkbox和onload的load事件,你可以将这个对象全局存储在某个列表中的代码中,然后从全局列表中访问它。如果您有多行,则在将其添加到全局列表之前,您必须在加载时为每个复选框添加某种类型唯一标识符。您可以创建唯一的guid,并将其分配给checkbox的tag属性。
如果您在这方面有任何问题,请让我知道
https://stackoverflow.com/questions/4943045
复制相似问题