Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 当收藏被填满,然后移除装潢的时候,钩住这个瞬间?_Wpf_Collections_Progress Bar_Loading_Adorner - Fatal编程技术网

Wpf 当收藏被填满,然后移除装潢的时候,钩住这个瞬间?

Wpf 当收藏被填满,然后移除装潢的时候,钩住这个瞬间?,wpf,collections,progress-bar,loading,adorner,Wpf,Collections,Progress Bar,Loading,Adorner,我正在WPF数据网格中分组数据。这需要很长时间,所以我想展示一个加载条/装饰条 我正在使用MVVM。当datagrid完成分组后,如何删除/淡出加载条/装饰条 如何获得数据100%分组的时刻?这可以在XAML中设置或检索吗?我想您可以使用ItemContainerGenerator.StatusChanged事件。当状态变为Containers Generated时,分组完成 请注意,这只是一个假设,但我怀疑当您更改GroupDescriptions..时,容器会重新生成。我认为您可以使用Ite

我正在WPF数据网格中分组数据。这需要很长时间,所以我想展示一个加载条/装饰条

我正在使用MVVM。当datagrid完成分组后,如何删除/淡出加载条/装饰条


如何获得数据100%分组的时刻?这可以在XAML中设置或检索吗?

我想您可以使用
ItemContainerGenerator.StatusChanged
事件。当状态变为
Containers Generated
时,分组完成


请注意,这只是一个假设,但我怀疑当您更改
GroupDescriptions
..

时,容器会重新生成。我认为您可以使用
ItemContainerGenerator.StatusChanged
事件。当状态变为
Containers Generated
时,分组完成


请注意,这只是一个假设,但我怀疑当您更改
GroupDescriptions

时会重新生成容器。一个解决方案可能是绑定到扩展器的可见性。因为只有当所有数据分组时,扩展器才可见。但是,只有当您将IsExpanded设置为TRUE时,这才起作用,否则扩展器将立即可见,并且当您单击扩展器箭头时会发生分组

我的扩展器在默认设置下未展开。所以我试着通过撕开RowStyle和CellStyle来加速扩展器的扩展。这是我在不破坏显示交替背景的不可编辑网格功能的情况下所能达到的最小xaml

 <Style x:Key="DataGridRowStyle" TargetType="{x:Type DataGridRow}">               
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridRow}">
                            <Border Background="{TemplateBinding Background}" SnapsToDevicePixels="True">                                                            
                               <DataGridCellsPresenter Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>   
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

            <Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
                <Setter Property="Background" Value="Transparent" />
                <Setter Property="BorderBrush" Value="Transparent" />             
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridCell}">                          
                                <ContentPresenter />                
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="True">                     
                        <Setter Property="Foreground" Value="Red"/>                    
                    </Trigger>
                </Style.Triggers>
            </Style>


现在扩张速度加快了,我猜大概是30-40%。至少我能从视觉上认出它。:)

一种解决方案是结合膨胀剂的可视性。因为只有当所有数据分组时,扩展器才可见。但是,只有当您将IsExpanded设置为TRUE时,这才起作用,否则扩展器将立即可见,并且当您单击扩展器箭头时会发生分组

我的扩展器在默认设置下未展开。所以我试着通过撕开RowStyle和CellStyle来加速扩展器的扩展。这是我在不破坏显示交替背景的不可编辑网格功能的情况下所能达到的最小xaml

 <Style x:Key="DataGridRowStyle" TargetType="{x:Type DataGridRow}">               
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridRow}">
                            <Border Background="{TemplateBinding Background}" SnapsToDevicePixels="True">                                                            
                               <DataGridCellsPresenter Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>   
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

            <Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
                <Setter Property="Background" Value="Transparent" />
                <Setter Property="BorderBrush" Value="Transparent" />             
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridCell}">                          
                                <ContentPresenter />                
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="True">                     
                        <Setter Property="Foreground" Value="Red"/>                    
                    </Trigger>
                </Style.Triggers>
            </Style>


现在扩张速度加快了,我猜大概是30-40%。至少我能从视觉上认出它。:)

我在这里找到了一个很好的例子:啊,是的,我不能再编辑评论了。。。我仍然想说,我可能会把分组弄糟;-)我在这里找到了一个很好的例子:啊,是的,我不能再编辑评论了。。。我仍然想说,我可能会把分组弄糟;-)