wpf里的listbox控件问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf里的listbox控件问题相关的知识,希望对你有一定的参考价值。
xaml代码如下
<ListBox Height="393" Margin="10,0,0,0" HorizontalAlignment="Left" Width="283" Name="listbox1" SelectionChanged="listbox1_SelectionChanged">
<ListBox.Items>
<TextBlock Height="30" Padding="15,6" Width="130" Name="textblock1">新规フイールド-</TextBlock>
</ListBox.Items>
</ListBox>
我怎么在cs文件里的获取textblock的内容
TextBlock tb= listbox1.Items[0] as TextBlock;
tb.Text //你要的内容
但是你这样写根本没用到wpf的一点点优势,完全是winform的写法。
应该用绑定追问
绑定怎么写
追答自学一下mvvm相关知识
私信有偿帮改或者指导
参考技术A var t=(TextBlock)listbox1.Items[0];MessageBox.Show(t.Text);
wpf listbox 内的内容显示问题,需要设置里面的itemsPresenter
有时候控件并非维护本身逻辑,而是依赖于父子元素的,如了上诉的ContentPresenter,我们还有一个非常常用的ListBox控件,因为继承自ItemsControl,所以有一个ItemsPanel属性作为集合元素承载容器,但集合控件本身却不负责呈现控件,那么这个任务就留给了子元素ItemsPresenter,其实用也很简单,只要把ItemsPresenter放在内部模板中,那么ItemsPresenter则会去检测父元素是否为集合控件,然后将ItemsPanel添加到其内部视觉树当中
<Style x:Key="{x:Type ItemsControl}" TargetType="{x:Type ItemsControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ItemsControl}">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
以上是关于wpf里的listbox控件问题的主要内容,如果未能解决你的问题,请参考以下文章
C# WPF 可拖动用户控件在 Canvas 上的 ListBox 中
2021-08-14 WPF控件专题 ListBox控件详解
WPF Listbox 控件模板不显示 Listboxitem 控件模板和 ItemTemplate 数据模板