我有一个ItemsControl,其ItemsSource为Hours。 我用边框表示每个项目(在数据模板中)。
现在,每个边框都有一个小时数据,我想在后面的代码中检索它。 它甚至可能吗?
我的代码示例:
<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;
答案 0 :(得分:0)
从你的代码中,我猜你有兴趣在事件处理程序中找到'hourTime'吗?当ItemsControl为每个项目创建DataTemplate的“实例”时,它会将模板的DataContext设置为项目本身。因此,以下内容应该有效:
Border border = sender as Border;
MyItemType item = border.DataContext as MyItemType;
var hourTime = item.hourTime;