如何动态改变DataGrid.RowDetailsTemplate模板内容
我希望在运行中动态改变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 >
答案
- 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
全部回复
- 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
请问我使用了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>

