c# – 在添加删除项目时动态调整ListView高度?

c# – 在添加删除项目时动态调整ListView高度?,第1张

概述我有一个3级嵌套ListView绑定到相同的3级嵌套集合. MainItems在第3级添加. 未修改,所有级别都有滚动条.在添加的项目上,我编辑ListViewItem的包含网格以动态调整高度. 我成功删除了第3级滚动条.但是,我想删除第二级,我似乎无法做到. 当我尝试调整第一级ListViewItem的高度时,第一级上的滚动条刚刚消失,但高度根本没有调整. 我想要做的只是让ScrollBar在第 我有一个3级嵌套ListVIEw绑定到相同的3级嵌套集合. MainItems在第3级添加.

未修改,所有级别都有滚动条.在添加的项目上,我编辑ListVIEwItem的包含网格以动态调整高度.

我成功删除了第3级滚动条.但是,我想删除第二级,我似乎无法做到.

当我尝试调整第一级ListVIEwItem的高度时,第一级上的滚动条刚刚消失,但高度根本没有调整.

我想要做的只是让Scrollbar在第一级并从那里滚动.

基本上,这样的事情:

这是我目前的代码:

<GrID x:name="ParentGrID"><ListVIEw x:name="Level1ListVIEw" ItemsSource="{Binding Path=Level1}">    <ListVIEw.ItemTemplate>        <DataTemplate>            <GrID x:name="GrIDLevel1">                <GrID.ColumnDeFinitions>                    <ColumnDeFinition WIDth="auto" />                    <ColumnDeFinition WIDth="*" />                </GrID.ColumnDeFinitions>                <ToolKit_Controls:LayouttransformControl GrID.Column="0">                    <ToolKit_Controls:LayouttransformControl.transform>                        <Rotatetransform x:name="rotatetransform" Angle="270"/>                    </ToolKit_Controls:LayouttransformControl.transform>                    <TextBlock Text="{Binding Path=Level1nameString}" FontSize="32" HorizontalAlignment="Center" />                </ToolKit_Controls:LayouttransformControl>                <ListVIEw x:name="Level2ListVIEw"                        ItemsSource="{Binding Path=Level2}"                      GrID.Column="1"                      >                    <ListVIEw.ItemTemplate>                        <DataTemplate>                            <GrID x:name="GrIDLevel2">                                <GrID.RowDeFinitions>                                    <RowDeFinition Height="auto" />                                    <RowDeFinition Height="*" />                                </GrID.RowDeFinitions>                                <border borderBrush="White" borderThickness="1" GrID.Row="0"/>                                <TextBlock Text='{Binding Path=Level2name}' Foreground="Black" FontSize="18"                                       GrID.Row="0"/>                                <GrID x:name="GrIDLevel3" WIDth="300" Height="100" GrID.Row="1">                                    <ListVIEw x:name="ListVIEw_Level3" IsSwipeEnabled="False"                                    ManipulationMode="None"                                          ItemsSource="{Binding Path=Level3displayCollection}"                                                          GrID.Column="1">                                        <ListVIEw.ItemContainerTransitions>                                            <TransitionCollection>                                                <EntrancethemeTransition IsstaggeringEnabled="False" />                                            </TransitionCollection>                                        </ListVIEw.ItemContainerTransitions>                                    </ListVIEw>                                </GrID>                            </GrID>                        </DataTemplate>                    </ListVIEw.ItemTemplate>                </ListVIEw>            </GrID>        </DataTemplate>    </ListVIEw.ItemTemplate>    <ListVIEw.ItemsPanel>        <ItemsPanelTemplate>            <WrapGrID OrIEntation="Horizontal" MaximumRowsOrColumns="1" ></WrapGrID>        </ItemsPanelTemplate>    </ListVIEw.ItemsPanel></ListVIEw>

并且重要的代码改变了项目的高度:

var GrIDLevel1 = TypedAssociatedobject.GetAncestors().Where(a =>      a.named("GrIDLevel1")).FirstOrDefault() as GrID;//GrIDLevel1.Height = GrIDLevel1.ActualHeight + 50;var GrIDLevel2 = TypedAssociatedobject.GetAncestors().Where(a => a.named("GrIDLevel2")).FirstOrDefault() as GrID;GrIDLevel2.Height = GrIDLevel2.ActualHeight + 50;var GrIDLevel3 = TypedAssociatedobject.GetAncestors().Where(a => a.named("GrIDLevel3")).FirstOrDefault() as GrID;GrIDLevel3.Height = GrIDLevel3.ActualHeight + 50;

级别1被注释掉,因为当我添加它时,虽然删除了第二个滚动条,但ListVIEwItem高度不会改变,导致UI错误并且不显示所有内容.您还注意到第1级滚动条保持相同的大小:

我想要的是扩展header 1的高度,以便所有内容仍然显示,右侧的1st Level Scrollbar是扩展/增长的.

谁能帮助指出我做错了什么?

谢谢!

编辑:这是一个windows商店应用程序.

解决方法 在内部列表视图中将ItemsPanel设置为StackPanel.这样您就不需要调整每个项目的高度.
同样要隐藏滚动条,请在内部列表视图中使用ScrollVIEwer.VerticalScrollbarVisibility =“HIDden”.

你考虑过使用grouping吗?

总结

以上是内存溢出为你收集整理的c# – 在添加/删除项目时动态调整ListView高度?全部内容,希望文章能够帮你解决c# – 在添加/删除项目时动态调整ListView高度?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1231508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存