0

重複の可能性:
datagridからチェックボックスの値を取得しますか?C#

テンプレート化されたDataGridで選択した行内のコントロールを見つけようとしています。

 <DataGridTemplateColumn Header="Local">
                 <DataGridTemplateColumn.CellTemplate>
                      <DataTemplate>
                           <CheckBox Name="chkImport"  IsChecked="{Binding IsLocalized}"></CheckBox>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>

私は次のコードを試しています:

   var selectedRow = (DataGridRow) gridFileScan.ItemContainerGenerator.ContainerFromItem(gridFileScan.SelectedItem);                           

   CheckBox chkImport = FindVisualChild<CheckBox>(selectedRow);

ただし、chkImportは常にnullです。何か案は ??

4

2 に答える 2

0

デバッグすると、メソッドがVisualTreeを再帰するのを確認できるはずです。

Visual Tree Visualizerを使用すると、ビジュアルツリーを表示できます。

FindVisualChildの実装に欠陥があるか、VisualTreeが期待どおりに表示されない可能性があります。

于 2012-05-25T05:29:00.157 に答える
0

それを見つけた。ItemsSourceを変更した後、このメソッドを呼び出す必要がありました。

  gridFileScan.UpdateLayout();
于 2012-05-27T03:46:28.910 に答える