2011-02-18 2 views
1

DataGrid 전체 열은 아래에 있습니다. btnUpdate_Click 이벤트에DataGrid WPF에서 이벤트를 발생시킨 컨트롤의 형제를 찾는 방법

<my:DataGrid.Columns> 
    <my:DataGridTemplateColumn Header="Last Name" MinWidth="160" SortMemberPath="[LAST_NAME]"> 
     <my:DataGridTemplateColumn.CellTemplate > 
      <DataTemplate> 
       <TextBlock Name="lblLastName" Padding="5" 
        Text="{Binding [LAST_NAME]}" /> 
      </DataTemplate> 
     </my:DataGridTemplateColumn.CellTemplate> 
    </my:DataGridTemplateColumn> 
    <my:DataGridTemplateColumn Header="New Age Group" IsReadOnly="True" 
       MinWidth="130"> 
     <my:DataGridTemplateColumn.CellTemplate> 
      <DataTemplate> 
       <ComboBox SelectedValue="{Binding AgeGroupId}" 
         DisplayMemberPath="AgeGroupName" ItemsSource="{Binding}" 
         Name="ddlNewAgeGroup" Loaded="ddlNewAgeGroup_Loaded"/> 
      </DataTemplate> 
     </my:DataGridTemplateColumn.CellTemplate> 
    </my:DataGridTemplateColumn> 
    <my:DataGridTemplateColumn Header="Update" MinWidth="75" Width="100"> 
     <my:DataGridTemplateColumn.CellTemplate> 
      <DataTemplate> 
       <Button Content="Update" Name="btnUpdate" Click="btnUpdate_Click"/> 
      </DataTemplate> 
     </my:DataGridTemplateColumn.CellTemplate> 
    </my:DataGridTemplateColumn> 
    </my:DataGrid.Columns> 

나는

ddlNewAgeGroup

에 설정되어있는 값을 얻을 싶어하지만 버튼이 콤보 상자가 WPF에서 이벤트를 클릭 찾는 방법을 잘 모릅니다. 나는 그리드를 바인드하기 위해 DataTables를 사용하고있다.

답변

0

(e.OriginalSource as Button).DataContext은 행에 바인더 제본 오브젝트해야한다, 그래서 (ComboBox.SelectedValue에서 본)는 AgeGroupId 속성을 가지고 있어야하고, (ComboBox.ItemsSource에서 본)는 모음입니다. 따라서 AgeGroupName을 다음과 같이 사용할 수 있습니다.

PS. ComboBox.SelectedValuePathAgeGroupId과 같이 설정하십시오.이 값을 지정하지 않으면 ComboBox.SelectedValue은 전체 레코드와 동일합니다.

관련 문제