listview 相关问题

ListView是UI库在大多数现代操作系统中提供的图形屏幕控件或窗口小部件,用于以列表形式显示项目。

DockPanel 中 ListView 的高度随项目缩放,并且不会停在窗口边框处 - 不会出现滚动条

我是 WPF 新手。我的同事制作了一个 ListView,它的高度随着项目的数量而变化,甚至超出了窗口的边界,这样滚动条就不会出现,下面的项目也不会出现

回答 1 投票 0

ListView可编辑,支持GTK4、C和VFL

GTK4 关于 TreeView 的新可能性并不容易实现。因此,最好有一个介绍性示例。 几个小时后,在...

回答 1 投票 0

具有虚拟化的ScrollIntoView和ListView

我有ListView(默认情况下虚拟化处于打开状态),其中ItemsSource绑定到ObservableCollection属性。 当填充数据时(设置属性并发出通知)我发现...

回答 2 投票 0

带有自定义适配器的列表视图中的卡片,但我无法获取列表视图项目

我正在尝试单击列表视图时项目获取编号和吐司,但不起作用 这是我的活动和其他我是 Android 世界的新手 包 com.example.gez1; //导入android.support.v7.app。

回答 1 投票 0

以编程方式切换时会触发 Switch Toggled 事件

<StackLayout BackgroundColor="White"> <ListView x:Name="ListViewMenu" ItemsSource="{Binding Menus}" HasUnevenRows="True" BackgroundColor="White" SeparatorVisibility="None" VerticalOptions="FillAndExpand" ItemTapped="Handle_ItemTapped" ItemSelected="Handle_ItemSelected" IsGroupingEnabled = "true" SeparatorColor="White"> <ListView.GroupHeaderTemplate> <DataTemplate> <ViewCell> <ViewCell.View> <StackLayout BackgroundColor="LightSkyBlue" HeightRequest="25"> <Label Text="{Binding Key}" FontAttributes="Bold" LineBreakMode="NoWrap" Margin="10,0,0,0"> </Label> </StackLayout> </ViewCell.View> </ViewCell> </DataTemplate> </ListView.GroupHeaderTemplate> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <ViewCell.View> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="6*"></ColumnDefinition> <ColumnDefinition Width="Auto"></ColumnDefinition> </Grid.ColumnDefinitions> <Label Text="{Binding article_description}" FontAttributes="Bold" FontSize="13" Margin="10,5,0,-6" Grid.Row="0" LineBreakMode="NoWrap"/> <Label Text="{Binding dish_name}" FontSize="13" Margin="10,0,0,2" Grid.Row="1" Grid.Column="0"/> <Label Grid.Row="0" Grid.Column="0" x:Name="LabelReserved" Text="{Binding reserved}" IsVisible="false" LineBreakMode="NoWrap"/> <Switch Grid.Row="0" Grid.RowSpan="2" Grid.Column="1" HorizontalOptions="Start" VerticalOptions="Center" IsEnabled="False" Toggled="SwitchMenu_OnToggled" > <Switch.Triggers> <DataTrigger TargetType="Switch" Binding="{Binding Source={x:Reference LabelReserved}, Path=Text.Length}" Value="7"> <Setter Property="IsToggled" Value="true" /> </DataTrigger> </Switch.Triggers> </Switch> </Grid> </ViewCell.View> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> </StackLayout> 我上面有一个列表视图,它有一个开关,如果 labelreserved 的长度为 7,我有一个触发器来切换开关,但我不希望只有当用户单击开关时才触发 Toggled 事件。 可以做我想做的事吗? 注意: 这个解决方案是我的一个实验 - 所以我建议,如果你决定实现这个,请谨慎使用。 基本上,目的是创建一个仅查看的解决方案,能够跟踪如何设置 IsToggled 属性 - 无论是通过触发器、绑定上下文还是点击操作(类似于维护的 属性上下文)对于 BindingContext 于 BindableObject) 假设我们有一个自定义事件,仅当用户点击开关时才会触发 - 这个问题应该得到解决。简单地向 Switch 添加点击识别器似乎不起作用。我们只剩下两个选择: 创建您自己的自定义控件,提供与Switch类似的功能,但仅在捕获点击手势时触发切换事件 - 强烈推荐此选项。 或者,您可以使用自定义事件扩展现有 Switch 控件,并通过提供其自己的一组可绑定属性来跟踪 IsToggled 属性的设置方式。 例如: public class CustomSwitch : Switch { internal enum ToggledSetFlags { None = 0, FromCode = 1 << 0, } ToggledSetFlags _toggleSetStatus = ToggledSetFlags.None; public event EventHandler<ToggledEventArgs> UserToggled; public static readonly BindableProperty ToggledStateFromCodeProperty = BindableProperty.Create( "ToggledStateFromCode", typeof(bool), typeof(CustomSwitch), defaultBindingMode: BindingMode.TwoWay, defaultValue: default(bool), propertyChanged: OnToggledStateFromCodeChanged); public bool ToggledStateFromCode { get { return (bool)GetValue(ToggledStateFromCodeProperty); } set { SetValue(ToggledStateFromCodeProperty, value); } } private static void OnToggledStateFromCodeChanged(BindableObject bindable, object oldValue, object newValue) { ((CustomSwitch)bindable).OnToggledStateFromCodeChangedImpl((bool)oldValue, (bool)newValue); } protected virtual void OnToggledStateFromCodeChangedImpl(bool oldValue, bool newValue) { if (ToggledStateFromCode != IsToggled) { _toggleSetStatus = ToggledSetFlags.FromCode; IsToggled = ToggledStateFromCode; } } protected override void OnPropertyChanged(string propertyName = null) { base.OnPropertyChanged(propertyName); if (propertyName == nameof(IsToggled)) { ToggledStateFromCode = IsToggled; if (_toggleSetStatus == ToggledSetFlags.None) UserToggled?.Invoke(this, new ToggledEventArgs(IsToggled)); else _toggleSetStatus = ToggledSetFlags.None; } } } 并且,示例用法如下所示: <local:CustomSwitch Grid.Row="0" Grid.RowSpan="2" Grid.Column="1" HorizontalOptions="Start" VerticalOptions="Center" ToggledStateFromCode="{Binding IsSwitchOn}" UserToggled="SwitchMenu_OnToggled"> <Switch.Triggers> <DataTrigger TargetType="{x:Type local:CustomSwitch}" Binding="{Binding Source={x:Reference LabelReserved}, Path=Text.Length}" Value="7"> <Setter Property="ToggledStateFromCode" Value="true" /> </DataTrigger> </Switch.Triggers> </local:CustomSwitch> 编辑1:在恢复自定义切换属性状态时错过了在else方法中添加OnPropertyChanged。此外,仅在当前切换值不同时添加检查以设置标志。 编辑2: 将可绑定属性转换为跟踪状态,而不是像以前一样无状态。这确保了能够在不触发事件的情况下处理绑定更改。 您可以通过使用属性 IsEnabled 禁用 Switch 并将其设置为 false 来防止用户切换开关。 这个问题很旧,但我找到了一个简单(有点不正确)的解决方案,我用它来从已接受的答案中节省大量额外的工作。 当我以编程方式切换开关时,我将 Tag 属性设置为 true。 ToggleSwitch.Tag = true; ToggleSwitch.IsOn = true (or false); 然后在我的 Toggled 事件中,我检查 Tag 属性是否为 null 并执行我的操作。这样,事件被触发的唯一时间就是用户切换开关时。 private void ToggleSwitch_Toggled(object sender, RoutedEventArgs e) { ToggleSwitch toggleSwitch = (ToggleSwitch)e.OriginalSource; if (toggleSwitch.Tag == null) { // Switch was toggled by user, do some action. } else { // Switch was toggled programmatically, set Tag null. toggleSwitch.Tag = null; } }

回答 3 投票 0

在 C# 表单中,当列表视图框完成多个选择的更新时,如何捕获或隔离?

我正在开发的应用程序允许用户使用鼠标单击或键盘、标准窗口选择内容来选择列表视图框中的多个项目,我遇到的麻烦是找出一种方法...

回答 1 投票 0

QML 滚动条无法滚动浏览所有内容

我创建了一个简单的可重复示例来实现我想要实现的目标。 ListView 动态填充字符串,只要有新内容就可以向下滚动内容。 但它并不...

回答 1 投票 0

WinUI 3 ListViewItem 宽度不符合 ListView 宽度

个人评论 这实际上让我有点疯狂;我似乎无法获得预期的结果,因此非常感谢对此的任何帮助。 问题陈述 我在

回答 1 投票 0

c# 将项目拖动到另一个面板时忽略 MouseUp

我正在尝试将项目从 ItemList 拖到我的 TreeList 中。我编写了listView1_MouseDown、listView1_MouseMove、treeView1_MouseMove 和treeView1_MouseUp 函数。当我在 treeVi 中移动鼠标时...

回答 1 投票 0

如何最好地让我的滚动控制器在整个应用程序中可用?

上下文:我的应用程序中将有几个可滚动列表,并且每当添加项目时我总是希望将它们滚动到最新项目。 问题:我的 ListView.builders 以及 item 所在的位置...

回答 3 投票 0

asp.net VB 需要为Listview或SQL Insert设置默认值

希望我能说清楚。我有: 带有 sql 数据源的列表视图 一个单独的下拉列表,当选择某些内容时会过滤列表视图/sqldatasoure 我想做的是使用 fr 的值...

回答 2 投票 0

ASP.NET VB 嵌套列表视图与内部列表视图的问题

我正在尝试制作嵌套列表视图。但内部列表视图没有显示。外部正在显示。 我有外部列表视图和内部列表视图。每个都有自己的sqldatasource。问题是我不能...

回答 1 投票 0

不带滚动条的ListView在ScrollView中使用

我想在ScrollView中使用一种ListView。该列表的长度可变,始终可以添加/删除项目。有没有简单的方法来修改默认的Android ListView,或者...

回答 1 投票 0

为什么 UI 没有反映我的 ObservableCollection 中的更改?

我有三个列表视图,第一个显示通用列表,当双击某个元素时,以下两个列表视图应该“分支”出来。例如,第一个列表显示汽车,

回答 1 投票 0

有没有办法去掉winform中listview的columnheader最后一列的空格?

如果我最大化窗口并将其设置为深色模式,最后一行的空白将会突出,我想将其删除 已经尝试重绘列标题 ListView.DrawColumnHeader += 新

回答 1 投票 0

Flutter,当屏幕大于导航栏宽度时如何使可滚动底部导航栏居中

我正在尝试制作一个带有按钮的底部导航栏,以从待办事项列表应用程序中过滤掉不同的语言。我有一个不可滚动的按钮,可以(取消)选择所有按钮和一个带屁股的列表视图......

回答 1 投票 0

即使将 IsVisible 设置为 true,Xamarin.Forms ListView 也不显示项目

说明: 我正在开发 Xamarin.Forms 应用程序,目前遇到的问题是即使将 IsVisible 设置为 true 后,ListView 也不会显示项目。我关注了 Xamarin

回答 1 投票 0

在ListView中添加多行项目

我想用 TListView 显示一个列表,该列表是用我的数据库中的数据生成的。 但我的代码只显示列表中的一项。 它应该看起来像一个简短的列表,其中包含地址、名称 1、名称 1...等文本。

回答 1 投票 0

是否可以做一个ListViewItem数组?

是否可以声明一个ListViewItem数组?例如。 ListViewItem[] 数组项; 如果可能的话,我该如何填充数组? 是否可以有不固定大小的数组?

回答 3 投票 0

如何根据索引跳转到ListView中尚未构建的位置?

我创建了一个无限滚动列表,如果我当前位置位于索引 0,我可以多快跳转到索引 10000 的位置。注意:索引 10000 的组件从未构建。我只能得到...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.