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 数据模板

WPF中ListBox控件选择多个数据项

wpf listbox 内的内容显示问题,需要设置里面的itemsPresenter

WPF ItemsControl ListBox ListView比较