Silverlight,以编程方式从数据模板中获取ItemSource数据

时间:2011-02-01 21:03:06

标签: c# silverlight itemsource

我有一个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;

1 个答案:

答案 0 :(得分:0)

从你的代码中,我猜你有兴趣在事件处理程序中找到'hourTime'吗?当ItemsControl为每个项目创建DataTemplate的“实例”时,它会将模板的DataContext设置为项目本身。因此,以下内容应该有效:

Border border = sender as Border;
MyItemType item = border.DataContext as MyItemType;
var hourTime = item.hourTime;