2011-02-09 9 views
1

CheckBoxにアクセスして、ComboBoxのselectionChangeイベントで有効/無効を変更したいとします。両方のコントロールはrowDetailsTemplate 私の例である: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> 

これは非常に重要です!!!!

答えて

0

私は理由を知りませんが、銀河ではあなたのケースでは、コードから直接コントロールにアクセスすることはできません。チェックボックスのロードイベントを登録することができます。また、このオブジェクトを一部のリストのコードにグローバルに格納し、そのグローバルリスト複数の行がある場合、ロード時に各チェックボックスに一意の識別子を追加してからグローバルリストに追加する必要があります。ユニークなGUIDを作成し、チェックボックスのタグプロパティに割り当てることができます。 uは、この内の任意の問題を持っている場合

は、plzは私が

1

小さな例を教えて...

private CheckBox cbChaluka = null; 

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

、あなたはその後、cbChalukaを参照することができ、あなたの他のコントロールのSelectionChangeイベントに。

+0

私のために働いた - これは答えとして受け入れるべきです – DNKROZ