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來完成。 –