c# – 数据绑定后访问ListBox项

c# – 数据绑定后访问ListBox项,第1张

概述我有一个ListBox,我在其中为其项目定义了一个DataTemplate: <ListBox.ItemTemplate> <DataTemplate> <Border> <TextBlock Text="{Binding Name}" /> </Border> </DataTemplate></ListBox.ItemTe 我有一个ListBox,我在其中为其项目定义了一个DataTemplate:

<ListBox.ItemTemplate>    <DataTemplate>        <border>            <TextBlock Text="{Binding name}" />        </border>    </DataTemplate></ListBox.ItemTemplate>

我用来向ListBox添加元素的类如下:

public class MyItem{    public string name    { get; set; }}

现在我需要更改ListBox项的背景,例如选择项时:

private voID ListBox_SelectionChanged(object sender,SelectionChangedEventArgs e){    if (e.AddedItems.Count == 1)    {        var item = e.AddedItems.First() as MyItem;    }}

问题是该项是MyItem类型,而我也需要访问border和TextBlock对象.

解决方法 您可以在边框样式上使用精美的relativeSource绑定

<border.Style>    <Style targettype="border">        <Style.Triggers>            <DataTrigger Binding="{Binding IsSelected,relativeSource={relativeSource Mode=FindAncestor,AncestorType=ListBoxItem}}" Value="True">                <Setter Property="Background" Value="Pink"/>            </DataTrigger>        </Style.Triggers>    </Style></border.Style>

这将创建一个DataTrigger,它将绑定到父ListBoxItem的IsSelected属性,当它被选中时,它会将border的背景颜色设置为Pink.

总结

以上是内存溢出为你收集整理的c# – 数据绑定后访问ListBox项全部内容,希望文章能够帮你解决c# – 数据绑定后访问ListBox项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1232205.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存