Telerik RadTimeline响应鼠标点击

时间:2012-03-01 21:38:04

标签: silverlight telerik

有没有办法知道用户是否点击了RadTimeline中的某个项目?我想处理点击并对选定的时间轴项目做一些事情,但我的搜索没有透露任何方法来处理这个问题。我可以捕获鼠标点击MouseLeftButtonDown事件,但我没有看到一种方法来判断哪个项目被击中,如果有的话。

1 个答案:

答案 0 :(得分:1)

根据Telerik的说法,此功能不受支持,但将在2012年第一季度SP1或2012年第二季度发布。

但是,在研究之后,我发现了一种似乎有效的解决方法。如果使用其上具有MouseLeftButtonDown事件的DataTemplate覆盖TimelineItemTemplate,则可以使用发送方的DataContext来获取绑定数据。

XAML:

<telerik:RadTimeline x:Name="MatchTimeline" Height="250" PeriodStart="3/1/2012" PeriodEnd="3/30/2012">
<telerik:RadTimeline.Intervals>
    <telerik:DayInterval/>
    <telerik:HourInterval/>
</telerik:RadTimeline.Intervals>
<telerik:RadTimeline.TimelineItemTemplate>
    <DataTemplate>
        <Border Height="14">
            <Grid>
                <Rectangle Height="10" Fill="Blue" MouseLeftButtonDown="Rectangle_MouseLeftButtonDown"/>
            </Grid>
        </Border>
    </DataTemplate>
</telerik:RadTimeline.TimelineItemTemplate>

代码:

private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    MyTimelineItem item = (MyTimelineItem)(((Telerik.Windows.Controls.DataItemBase)(((System.Windows.FrameworkElement)(sender)).DataContext)).DataItem);
    item.IWasHere();
}