IT 专业人士的资源 > 论坛主页 > Web 技术 论坛 > Silverlight 技术 > 如何动态改变DataGrid.RowDetailsTemplate模板内容
提出问题提出问题
 

已答复如何动态改变DataGrid.RowDetailsTemplate模板内容

  • 2009年10月29日 1:46子龙 用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌
     

    我希望在运行中动态改变DataGrid.RowDetailsTemplate模板内容,增加或减少一个TextBlock,应该怎样做?
            <data:DataGrid Name="list" >
                <data:DataGrid.RowDetailsTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="            类型:" />
                            <TextBlock Text="{Binding id}" >
                        </StackPanel>
                    </DataTemplate>
                 </data:DataGrid.RowDetailsTemplate>
            </data:DataGrid >

答案

  • 2009年10月29日 19:58Xun Sun - MSFTMSFT用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌
     已答复
    list.RowDetailsTemplate = XamlReader.Load(@"
    <DataTemplate xmlns="http://schemas.microsoft.com/client/2007"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:data=""clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"">
                        <StackPanel Orientation=""Horizontal"">
                            <TextBlock Text=""            类型:"" />
                            <TextBlock Text=""{Binding id}"" >
                        </StackPanel>
                    </DataTemplate>
    ") as DataTemplate;
    • 已标记为答案子龙 2009年11月2日 5:32
    •  

全部回复

  • 2009年10月29日 19:58Xun Sun - MSFTMSFT用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌
     已答复
    list.RowDetailsTemplate = XamlReader.Load(@"
    <DataTemplate xmlns="http://schemas.microsoft.com/client/2007"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:data=""clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"">
                        <StackPanel Orientation=""Horizontal"">
                            <TextBlock Text=""            类型:"" />
                            <TextBlock Text=""{Binding id}"" >
                        </StackPanel>
                    </DataTemplate>
    ") as DataTemplate;
    • 已标记为答案子龙 2009年11月2日 5:32
    •  
  • 2009年10月29日 20:58Silverlighter 用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌
     

    请问我使用了XamlReader.Load,怎么才能修改控件的动画样式呢?

    现在我在style中定义了新的样式,如果我使用XamlReader.Load动态添加了,样式又变回默认的了,该如何修改呢?

    例如下面的样式代码,该如何使用xamlreader载入呢?

    <Setter Property="Foreground" Value="#FF444444" />
            <Setter Property="Background" Value="#FFD4E9F7" />
            <Setter Property="HorizontalContentAlignment" Value="Center" />
            <Setter Property="VerticalContentAlignment" Value="Bottom" />
            <Setter Property="FontSize" Value="11.5" />
            <!--<Setter Property="FontFamily" Value="Verdana,Arial" />
      <Setter Property="FontWeight" Value="Bold" />-->
            <Setter Property="IsTabStop" Value="False" />
            <Setter Property="SeparatorBrush" Value="#FFAAAAAA" />
            <Setter Property="Padding" Value="8,40,0,0" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="localprimitives:DataGridColumnHeader">
                        <Grid x:Name="Root">
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualStateGroup.Transitions>
                                        <VisualTransition GeneratedDuration="00:00:0.1" />
                                    </VisualStateGroup.Transitions>
                                    <VisualState x:Name="Normal" >
                                        <Storyboard>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#FFD4E9F7"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#FFD4E9F7"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#FFD4E9F7"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#FFD4E9F7"/>
                                            </ColorAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="MouseOver">
                                        <Storyboard>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#FF448DCA"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#7FFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#CCFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#F2FFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="SortStates">
                                    <VisualStateGroup.Transitions>
                                        <VisualTransition GeneratedDuration="00:00:0.1" />
                                    </VisualStateGroup.Transitions>
                                    <VisualState x:Name="Unsorted" />
                                    <VisualState x:Name="SortAscending">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="Opacity" Duration="0" To="1.0"/>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="SortDescending">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="Opacity" Duration="0" To="1.0"/>
                                            <DoubleAnimation Storyboard.TargetName="SortIconTransform" Storyboard.TargetProperty="ScaleY" Duration="0" To="-.9"/>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>