1

我有一个DataGridColumn为促进动画而创建的自定义。在我更新该列之前,该列是可排序的(由框架提供),标记如下

 <controls:ResourceDataGrid x:Name="resourceDataGrid" 
                            HorizontalAlignment="Stretch" 
                            VerticalAlignment="Stretch" 
                            AutoGenerateColumns="false" 
                            GridLinesVisibility="None"
                            RowHeaderWidth="0" 
                            CanUserAddRows="True" 
                            CanUserDeleteRows="True" 
                            ItemsSource="{Binding Path=Resources, 
                                                  Mode=TwoWay,
                                                  UpdateSourceTrigger=PropertyChanged, 
                                                  IsAsync=True}" 
                            dataAccess:DataGridTextSearch.SearchValue="{Binding ElementName=searchBox, 
                                                                                Path=Text, 
                                                                                UpdateSourceTrigger=PropertyChanged}" 
                            dataAccess:DataGridTextSearch.IsAnyTextMatch="False">
    <controls:ResourceDataGrid.Columns>
        <!--<DataGridTemplateColumn CellTemplate="{StaticResource readOnlyCellUpdatedStyle}"  IsReadOnly="True"/>-->
        <DataGridTextColumn Header="KeyIndex" Binding="{Binding KeyIndex}" IsReadOnly="True"/>
        <DataGridTextColumn Header="FileName" Binding="{Binding FileName}" IsReadOnly="True"/>
        <DataGridTextColumn Header="ResourceName" Binding="{Binding ResourceName}" IsReadOnly="False"/>
     <controls:CollectionTextColumn Collection="ResourceStringList" Visibility="Collapsed"/>
</controls:ResourceDataGrid.Columns>

新列在上面显示为注释,这就是阻止该列可排序的原因。的代码DataGridTemplateColumn如下

<DataTemplate x:Key="readOnlyCellUpdatedStyle">
    <TextBlock Text="{Binding KeyIndex, 
                              NotifyOnTargetUpdated=True, 
                              Mode=TwoWay}">
        <TextBlock.Style>
            <Style TargetType="TextBlock">
                <Setter Property="Background" Value="Transparent"/>
                <Style.Triggers>
                    <EventTrigger RoutedEvent="Binding.TargetUpdated">
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="Background.Color" Duration="0:0:1.5"
                                                From="Transparent" To="Orange" RepeatBehavior="1x" 
                                                AutoReverse="True">
                                    <ColorAnimation.EasingFunction>
                                        <ExponentialEase EasingMode="EaseInOut"/>
                                    </ColorAnimation.EasingFunction>
                                </ColorAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>
</DataTemplate>

我怎样才能使它DataGridTemplateColumn可排序?

谢谢你的时间。

4

1 回答 1

2

您需要SortMemberPathDataGridTemplateColumn

也许尝试:

  <DataGridTemplateColumn SortMemberPath="KeyIndex" CellTemplate="{StaticResource readOnlyCellUpdatedStyle}"  IsReadOnly="True"/>
于 2013-08-19T22:02:07.400 回答