如何在列表视图的项目中引用控件或视图

编程入门 行业动态 更新时间:2024-10-26 16:32:18
本文介绍了如何在列表视图的项目中引用控件或视图-Xamarin Forms的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一种情况,例如,在ListView中,每个项目中都有两个Label和一个自定义的水平列表.

I have a scenario like, in a ListView I have two Labels and a custom made horizontal List in each item.

水平列表-滚动视图中水平方向的标签堆栈.

Horizontal List - stack of Labels in a ScrollView with orientation horizontal.

我需要的是,我想引用一个位于ListView特定项目的水平列表"内的标签,然后将水平列表"中的选定标签设置为粗体.有没有办法引用ListView项目的控件?

What I need is, I want to refer a Label which is inside the Horizontal List of a particular item of the ListView and make the selected Label from the Horizontal List to Bold. Is there a way to refer a control of ListView item?

下面是填充我的ListView的代码

Below is the code for filling my ListView

myListView = new ListView { // Source of data items. ItemsSource = itemsource, HasUnevenRows = true, RowHeight = -1, ItemTemplate = new DataTemplate(() => { Label label1 = new Label() { TextColor = Color.Black, HorizontalTextAlignment = TextAlignment.Start, FontSize = Device.GetNamedSize(NamedSize.Small, new Label()) }; label1.SetBinding<LVItem>(Label.TextProperty, indexer => indexer.Name); Label label2 = new Label() { TextColor = Color.Black, HorizontalTextAlignment = TextAlignment.Start, FontSize = Device.GetNamedSize(NamedSize.Small, new Label()) }; label2.SetBinding<LVItem>(Label.TextProperty, indexer => indexer.SelectedNum); //horizontal list StackLayout sLayout = new StackLayout() { Orientation = StackOrientation.Horizontal, }; for (int i = 0; i<itemLst.Count; i++) { Label label3 = new Label() { HorizontalTextAlignment = TextAlignment.Center, TextColor = Color.Black, FontSize = Device.GetNamedSize(NamedSize.Medium, new Label()) }; label3.Text = itemLst[i]; gestureRecognizer = new TapGestureRecognizer { Command = new Command(TapL_Tapped), CommandParameter = label3, }; label3.GestureRecognizers.Add(gestureRecognizer); sLayout.Children.Add(label3); } ScrollView scroll = new ScrollView { Orientation = ScrollOrientation.Horizontal, Content = new StackLayout { Children = { sLayout } } }; AbsoluteLayout layout = new AbsoluteLayout(); AbsoluteLayout.SetLayoutFlags(label1, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds(label1, new Rectangle(0.2, 0.2, 0.8, 0.25)); AbsoluteLayout.SetLayoutFlags(scroll, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds(scroll, new Rectangle(0.3, 0.6, 0.8, 0.2)); AbsoluteLayout.SetLayoutFlags(label2, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds(label2, new Rectangle(1.1, 0.3, 0.5, 0.2)); layout.Children.Add(label1); layout.Children.Add(scroll); layout.Children.Add(label2); return new ViewCell { View = new StackLayout { Children = { layout, } } }; } )};

推荐答案

您可以使用ItemTapped查找正在点击列表视图中的哪个项目.要使文本加粗,应在字体上使用绑定.然后在您的代码隐藏中,您可以切换该绑定的值,因此字体也会更改. 让我知道这是否对您有用!

You can use the ItemTapped to find which item of your listview is getting tapped. To get the text bold you should use a binding on your font. then in your codebehind you can switch the value of that binding and so will your font change. Let me know if this worked for you!

更多推荐

如何在列表视图的项目中引用控件或视图

本文发布于:2023-10-07 10:30:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1469145.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:视图   控件   项目   如何在   列表

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!