2013-08-01 26 views
1

我正在使用SiverLight Datagrid在一側的下拉列表和標籤有 在下拉SelectedIndexChanged事件我想查找標籤並分配DropdownList的選定值。如何在silverlight Datagrid下拉選擇變化事件中找到標籤控件事件

的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> 

DROPDOWNLIST SelectionChanged事件:

Private Sub cboCompVerSel_SelectionChanged(ByVal sender As System.Object, ByVal e As 

    System.Windows.Controls.SelectionChangedEventArgs) 

     Dim src = TryCast(sender, ComboBox) 

     If src IsNot Nothing Then 

      Dim fe As FrameworkElement = CType(src.Parent, FrameworkElement) 

      Dim gridCmbo As Grid = DirectCast(fe, Grid) 

      Dim lblCompVer As Label = CType(gridCmbo.FindName("lblCompVer"), Label) 

      lblCompVer.DataContext = src.SelectedItem 

     End If 
    End Sub 

我不能識別lblCompVer控制分配下拉列表中選擇值

+0

這種方法看起來過於複雜,更不用說易碎了......你不能使用視圖模型將標籤綁定到適當的值嗎? – McGarnagle

+0

我是silverlight的新手,你能指導我怎麼做。 – Kapil

回答

0

這裏去應答

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