2013-08-04 2 views
0

다음과 같이 PreparingCellForEdit 실버 라이트에서 Datagrid에PreparingCellForEdit 실버 라이트에서 Datagrid에 숨겨진 열 컨트롤 값을 얻는 방법을

코드 숨겨진 열 컨트롤 값을 얻는 방법 :

Private Sub TaskDataGrid_LoadingRow(ByVal sender As System.Object, ByVal e As 
System.Windows.Controls.DataGridRowEventArgs) 

    Dim row As DataGridRow = e.Row 
    Dim cellContent As FrameworkElement = TaskDataGrid.Columns(8).GetCellContent(e.Row) 

    Dim cboLabValidated As ComboBox = CType(cellContent.FindName("cboLabValidated"), ComboBox) 
    Dim ViewModel As New NonFirmWareNewRequestViewModel() 
    If cboLabValidated IsNot Nothing Then 
     cboLabValidated.ItemsSource = ViewModel.YesNoValues 
    End If 
    TaskDataGrid.Columns(1).Visibility = Visibility.Collapsed 
End Sub 

을 위의 코드에서 나는 숨겨진 오전 LoadingRow 이벤트 및 필요한 열 1 PreparingCellForEdit에 그 칼럼의 값을 얻을 수

PreparingCellForEdit에 대한

코드는 다음과 같이

Dim fe As FrameworkElement = TaskDataGrid.Columns(5).GetCellContent(e.Row) 
        Dim fe1 As FrameworkElement = TaskDataGrid.Columns(1).GetCellContent(e.Row) 

        Dim gridCmbo As Grid = DirectCast(fe, Grid) 

        Dim gridCmbo1 As Grid = DirectCast(fe1, Grid) 

        Dim lbltaskId As Label = CType(gridCmbo1.FindName("lbltaskId"), Label) 

        Dim cboCompVerSel As ComboBox = CType(gridCmbo.FindName("cboCompVerSel"), ComboBox) 

        Dim lblCompVer As Label = CType(gridCmbo.FindName("lblCompVer"), Label) 
내가 열 1을 표시하는 레이블 컨트롤을 사용하고 내가 레이블 컨트롤 개체를 식별하고 있지만, 내용이 빈됩니다

..

답변

0

이가 작동 잘

1)로드 행 이벤트에있는 동안 우리 열을 숨기지 않아야합니다. 열을 숨기면 열에서 값을 가져올 수 없어서 LoadRow 이벤트에서 첫 번째로 데이터가로드됩니다. 다음과 같이

2) 선택 변경 이벤트 코드의 열을 숨기기

Private Sub TaskDataGrid_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles TaskDataGrid.SelectionChanged 
     TaskDataGrid.Columns(1).Visibility = Visibility.Collapsed 
    End Sub 
행은 우리가 열을 숨길 수과를 얻을 수로드되면이 이벤트가 LoadingRow에서 Datagrid 이벤트 또는 PreparingCellForEdit 이벤트 후에 발생합니다

어디서나 원하는 값을 가져올 수 있습니다. 데이터를로드하지 않고 LoadingRow 이벤트에서 Hide를하면 DataGrid 템플릿 또는 데이터 열에서 해당 컨트롤의 값을 가져올 수 없습니다.

관련 문제