我有一个 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
对象。
TextBlock
并更改其属性,您应该使用FrameworkTemplate.FindName
方法。请查看此答案:https://dev59.com/5JHea4cB1Zd3GeqPt8YN - Salah Akbari