1
好吧,这已被问了很多次,但我无法找到正确的解决方案。我有这样的datagrid定义:如何访问datagrid模板列中的复选框?
<DataGrid AutoGenerateColumns="False"
IsReadOnly="True"
Name="InputDocItemsDataGrid"
ItemsSource="{Binding Path= InputItems}"
SelectedItem="{Binding Path= InputItem, UpdateSourceTrigger=PropertyChanged}"
SelectionChanged="InputDocItemsDataGrid_SelectionChanged"
PreviewMouseLeftButtonDown="InputDocItemsDataGrid_PreviewMouseLeftButtonDown">
<DataGrid.Columns>
<DataGridTemplateColumn CanUserReorder="False" CanUserResize="False">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox Name="cbxAll" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Checked="cbxAll_Checked" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="cbxSingleRow" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" PreviewMouseLeftButtonDown="cbxSingleRow_PreviewMouseLeftButtonDown" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
嗯,我只在这里添加这个模板列,因为这是兴趣点。所以我试图管理的是访问checkobx“cbxSingleRow”,因为它在数据网格之外,所以我可以用它做所有常规的东西,比如:cbxSingleRow.IsEnabled = false;
那么如何获得该复选框?
“所有的常规的东西” 在WPF通过数据绑定完成。不是程序代码。 –
我意识到这一点,我只需要从代码隐藏中访问该复选框,就像它是datagrid之外的任何其他复选框一样?有没有明确的解决方案来获得这种效果? – Stojdza
'我只需要从代码隐藏中访问该复选框 - 为什么?无论你想做什么,都可以通过DataBinding来完成。 –