Silverlight 4.0 如何在silverlight Datagrid下拉列表SelectionChanged事件中找到Label控件

Silverlight 4.0 如何在silverlight Datagrid下拉列表SelectionChanged事件中找到Label控件,silverlight-4.0,datagridtemplatecolumn,dropdownbox,Silverlight 4.0,Datagridtemplatecolumn,Dropdownbox,我正在使用SiverLight Datagrid,其中有一个dropdownlist和标签 在下拉列表SelectedIndexChanged事件中,我想找到标签并指定DropdownList的选定值 Xaml页面: <sdk:DataGridTemplateColumn Header="New Receipe" CanUserSort="True" > <sdk:DataGridTemplateColumn.CellTemplate

我正在使用SiverLight Datagrid,其中有一个dropdownlist和标签 在下拉列表SelectedIndexChanged事件中,我想找到标签并指定DropdownList的选定值

Xaml页面:

 <sdk:DataGridTemplateColumn  Header="New Receipe" CanUserSort="True" >
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Grid>

                                <Border Style="{StaticResource GridBackgroundBorder}"  Background="{Binding Path=IsActive, Converter={StaticResource BoolToBackgroundValueConverter1}}"></Border>
                                <sdk:Label Margin="5,0,5,0" x:Name="lblCompVer" Content="{Binding Path=Version}" Height="Auto" VerticalAlignment="Center" Foreground="{Binding Path=IsActive, Converter={StaticResource BoolToForegroundValueConverter1}}"/>
                            </Grid>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                    <sdk:DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <Grid>
                                <ComboBox Height="Auto" SelectionChanged="cboCompVerSel_SelectionChanged" x:Name="cboCompVerSel" ItemsSource="{Binding Path=CompVerList,Mode=TwoWay}" SelectedItem="{Binding Mode=OneWay, Path=Version}" Visibility="{Binding Path=IsActive, Converter={StaticResource BoolToVisibilityValueConverter1}}"/>
                            <!--<TextBox Height="Auto" Text="{Binding Mode=TwoWay, Path=Version}" x:Name="TextBoxCodeVer" Visibility="{Binding Path=IsActive, Converter={StaticResource BoolToVisibilityValueConverter1}}" AcceptsReturn="True"></TextBox>-->
                            </Grid>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellEditingTemplate>
                </sdk:DataGridTemplateColumn>
我无法识别LBLCompuver控件以分配下拉选择值

Private Sub btnAssign_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)

        Dim btnAssign = TryCast(sender, Button)

        If btnAssign IsNot Nothing Then

            Dim columnUpdatedby As DataGridColumn = TaskDataGrid.Columns(15)
            Dim columntimestamp As DataGridColumn = TaskDataGrid.Columns(16)
            Dim feUpdatedby As FrameworkElement = columnUpdatedby.GetCellContent(TaskDataGrid.SelectedItem)
            Dim fetimestamp As FrameworkElement = columntimestamp.GetCellContent(TaskDataGrid.SelectedItem)

            Dim gridCmboUpdatedby As Grid = DirectCast(feUpdatedby, Grid)

            Dim gridCmbotimestamp As Grid = DirectCast(fetimestamp, Grid)

            Dim lblAssignedBy As Label = CType(gridCmboUpdatedby.FindName("lblAssignedBy"), Label)

            Dim lblAssignedTimestamp As Label = CType(gridCmbotimestamp.FindName("lblAssignedTimestamp"), Label)

            lblAssignedBy.Content = BCOMSCurrentUser.BCOMSUser.UserName
            lblAssignedTimestamp.Content = DateTime.Now.ToString()

        End If
    End Sub

这种方法似乎过于复杂,更不用说脆弱。。。您不能使用视图模型将标签绑定到适当的值吗?我是silverlight的新手,您能指导我怎么做吗。
Private Sub btnAssign_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)

        Dim btnAssign = TryCast(sender, Button)

        If btnAssign IsNot Nothing Then

            Dim columnUpdatedby As DataGridColumn = TaskDataGrid.Columns(15)
            Dim columntimestamp As DataGridColumn = TaskDataGrid.Columns(16)
            Dim feUpdatedby As FrameworkElement = columnUpdatedby.GetCellContent(TaskDataGrid.SelectedItem)
            Dim fetimestamp As FrameworkElement = columntimestamp.GetCellContent(TaskDataGrid.SelectedItem)

            Dim gridCmboUpdatedby As Grid = DirectCast(feUpdatedby, Grid)

            Dim gridCmbotimestamp As Grid = DirectCast(fetimestamp, Grid)

            Dim lblAssignedBy As Label = CType(gridCmboUpdatedby.FindName("lblAssignedBy"), Label)

            Dim lblAssignedTimestamp As Label = CType(gridCmbotimestamp.FindName("lblAssignedTimestamp"), Label)

            lblAssignedBy.Content = BCOMSCurrentUser.BCOMSUser.UserName
            lblAssignedTimestamp.Content = DateTime.Now.ToString()

        End If
    End Sub