<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项所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)