【发布时间】:2014-08-22 08:17:54
【问题描述】:
我根据元素的属性将不同的 DataTemplates 应用于相同类型的元素(实际上是具有日期时间和一些其他属性的事件)。
该元素实际上是 Telerik 的 RadTimeline。
数据模板如下
<DataTemplate x:Key="eventXTemplate">
<Border Width="10" Height="10" Margin="0,0,0,5">
<Rectangle Height="7"
Width="7"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="X" // different fill colors depending on event type
Cursor="Hand"
MouseLeftButtonDown="Event_Clicked">
<Rectangle.RenderTransform>
<RotateTransform Angle="45">
</RotateTransform>
</Rectangle.RenderTransform>
</Rectangle>
</Border>
</DataTemplate>
现在想在Event_Clicked 方法中访问元素的日期时间属性。它如何访问它,因为我得到的发件人是矩形类型。
--编辑-
<local:CustomItemTemplateSelector x:Key="ItemTemplateSelector"
EventATemplate="{StaticResource eventATemplate}"
EventBTemplate="{StaticResource eventBTemplate}"/>
namespace timelineControl
{
public class CustomItemTemplateSelector : DataTemplateSelector
{
public DataTemplate EventATemplate { get; set; }
public DataTemplate EventBTemplate { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
TimelineDataItem data = item as TimelineDataItem;
items timelineItem = new items();
if (data == null)
timelineItem = item as items;
else
timelineItem = data.DataItem as items;
if (timelineItem == null)
return base.SelectTemplate(item, container);
switch (timelineItem.Eventtype)
{
case "1": return this.EventATemplate;
default: return this.EventBTemplate;
}
}
}
【问题讨论】:
标签: c# wpf telerik wpf-controls datatemplate