none
如何获取RowDetails里面的按钮控件? RRS feed

  • 问题

  •  RowDetailsTemplate:
    <data:DataGrid.RowDetailsTemplate>
      <DataTemplate>
        <Border BorderThickness="10"  BorderBrush="Black" CornerRadius="6" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="20 10 20 10">
          <Grid Background="White" HorizontalAlignment="Stretch" VerticalAlignment="Center" >
            <Grid.RowDefinitions>
              <RowDefinition Height="0.2*"/>
              <RowDefinition Height="0.2*"/>
              <RowDefinition Height="0.2*"/>
              <RowDefinition Height="0.2*"/>
              <RowDefinition Height="0.2*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
              <ColumnDefinition Width="Auto" />
              <ColumnDefinition Width="Auto" />
              <ColumnDefinition Width="Auto" />
              <ColumnDefinition Width="Auto" />
              <ColumnDefinition Width="Auto" />
           </Grid.ColumnDefinitions>
           <TextBlock Grid.Row="1" Grid.Column="0" Text="编 号:" Margin="50 5 5 5"/>
           <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding pid}" Margin="50 5 5 5"/>
           <TextBlock Grid.Row="1" Grid.Column="2" Text="类 型:"  Margin="50 5 5 5"/>
           <TextBlock Grid.Row="1" Grid.Column="3" Text="{Binding ptype}" Margin="50 5 5 5"/>
           <TextBlock Grid.Row="2" Grid.Column="0" Text="产 地:"  Margin="50 5 5 5"/>
           <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding parea}" Margin="50 5 5 5"/>
           <TextBlock Grid.Row="2" Grid.Column="2" Text="价 格:"  Margin="50 5 5 5"/>
           <TextBlock Grid.Row="2" Grid.Column="3" Text="{Binding pprice}" Margin="50 5 5 5"/>
           <TextBlock Grid.Row="3" Grid.Column="0" Text="描 述:" Margin="50 5 5 5"/>
           <TextBlock Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" Text="{Binding pexplian}" Margin="50 5 5 5"/>
           <Border Grid.RowSpan="4" Grid.Column="5" CornerRadius="5" BorderBrush="Black" BorderThickness="3" Margin="50 10 10 10">
             <Image x:Name="rowImage" Width="160" Height="160" Source="/GoodsSilverlight;Component/Imgs/test.jpg" Stretch="Fill" />
           </Border>
           <StackPanel Grid.Row="5" Grid.Column="5" Orientation="Horizontal" Margin="50 5 5 10">
             <Button x:Name="edButton"   Content="修 改 资 料" Width="80" Height="25" Margin="10" Opacity="0.8" Click="edButton_Click"/>
             <Button x:Name="levButton"  Content="收 起 页 面" Width="80" Height="25" Margin="10" Opacity="0.8" Click="levButton_Click"/>
           </StackPanel>
          </Grid>
        </Border>			
      </DataTemplate>
    </data:DataGrid.RowDetailsTemplate>
    为DataGrid添加LoadingRow事件里面,怎么获取每行显示的RowDetails里面两个按钮,为其赋予Tag值,然后为两个按钮写事件。不知道这样说能不能说清楚,请高手赐教。
    • 已编辑 yikechong 2010年3月24日 4:58 排版代码
    2010年3月24日 4:50

答案

  • 通常我会在button里注册loaded事件,然后:

     

     

    Button btn =sender as Button ;

     

     

    if(btn.Tag!=null)return;

    • 已标记为答案 yikechong 2010年3月24日 10:36
    2010年3月24日 8:22