Silverlight,从数据模板获取ItemSource数据程序化
问题描述:
我有一个ItemsControl与ItemsSource的小时。 我用边框表示每个项目(在数据模板中)。Silverlight,从数据模板获取ItemSource数据程序化
现在,每个边框都有一小时的数据,我想在后面的代码中检索它。 它甚至有可能吗?
我的代码示例:
<ItemsControl x:Name="dayHours">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Name="dayHourBorder" Height="30" BorderBrush="#B0B6BE" Width="193" BorderThickness="1,0,1,1" Background="AliceBlue" Tag="{Binding Index}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
而且在用简单的方式,我会想到这样的代码:
(sender as Border).hourTime;
答
从你的代码,我猜测,你有兴趣在寻找' hourTime'在事件处理程序中?当ItemsControl为每个项目创建DataTemplate的“实例”时,它将模板的DataContext设置为项目本身。因此,以下应该工作:
Border border = sender as Border;
MyItemType item = border.DataContext as MyItemType;
var hourTime = item.hourTime;
非常感谢你,我现在觉得愚蠢;) – Notter 2011-02-01 22:09:21