【问题标题】:Telerik RadTreeListView : Attaching event in rowsTelerik RadTreeListView:在行中附加事件
【发布时间】:2013-03-07 03:01:50
【问题描述】:

我在我的 WPF 应用程序中使用 Telerik radgridview

 <telerik:RadTreeListView Grid.Row="1" Grid.ColumnSpan="2"
              Name="WorkPreferenceTreeView"
              AutoGenerateColumns="false"
              IsReadOnly="True"
              ItemsSource="{Binding ItemsSource, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Views:WorkPreferenceSelectorView}}}"
              RowIndicatorVisibility="Collapsed"
              SelectedItem="{Binding SelectedItem, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Views:WorkPreferenceSelectorView}}}" 
              ScrollViewer.HorizontalScrollBarVisibility="Hidden">

            <TelerikNavigation:RadContextMenu.ContextMenu>
                <TelerikNavigation:RadContextMenu x:Name="RadContextMenu" />
            </TelerikNavigation:RadContextMenu.ContextMenu>

            <telerik:RadTreeListView.ChildTableDefinitions>
                <telerik:TreeListViewTableDefinition  ItemsSource="{Binding ItemPreferences}"  />
            </telerik:RadTreeListView.ChildTableDefinitions>

            <telerik:RadTreeListView.Columns>

                <telerik:GridViewDataColumn MinWidth="200" Width="*" CellTemplate="
              {StaticResource ItemPreferenceskPreferenceCellTemplate}" Header="Preference" IsFilterable="false"
ShowFieldFilters="false" Name="A" />

我在控件上附加了一个事件

  private void InitializeControl()
    {
        WorkPreferenceTreeView.MouseDoubleClick += (WorkPreferenceTreeView_MouseDoubleClick);
     }

现在我的问题是当我双击 radtreelistview 中的任何地方(甚至在滚动条中)时,MouseDoubleClick 事件就会触发,我只想在双击选定的项目或行时触发它。我想知道我是否可以在所选项目或每一行中附加 MouseDoubleClick,但我没有找到方法来做到这一点。有什么建议吗?

【问题讨论】:

    标签: wpf telerik radtreelist


    【解决方案1】:

    在您的示例中,您确实将事件附加到网格本身。

    事实上,您需要在 Row 上附加事件!

    您可以使用 RowStyle

    (在本例中,双击将切换 IsExpanded 行属性)

    <telerik:RadTreeListView ... >
         <telerik:RadTreeListView.RowStyle>
              <Style TargetType="telerik:TreeListViewRow">
                   <EventSetter
                        Event="MouseDoubleClick"
                        Handler="HandleRowDoubleClick" />
              </Style>
         </telerik:RadTreeListView.RowStyle>
    </telerik:RadTreeListView> 
    

    以及背后的代码

    public void HandleRowDoubleClick(object sender, RoutedEventArgs e)
    {
        var row = sender as Telerik.Windows.Controls.GridView.GridViewRow;
        row.IsExpanded = !row.IsExpanded;
    }
    

    享受:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      相关资源
      最近更新 更多