未修改,所有级别都有滚动条.在添加的项目上,我编辑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高度?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)