【问题标题】:how to bind the containing element in xaml如何在xaml中绑定包含元素
【发布时间】:2013-10-02 17:35:04
【问题描述】:

我有一个RadGridView,它有一个上下文菜单,在这个上下文菜单中我有一个按钮,我在参数中设置了一个命令,我想传递 gridview 本身 ​​- 我该怎么做?

<telerik:RadGridView Height="620" HorizontalAlignment="Right" Name="radGridView2" VerticalAlignment="Top" Width="1564" ShowGroupPanel="False" RowIndicatorVisibility="Collapsed" ItemsSource="{Binding Collections}" BorderBrush="#FFD7D2D2" FontFamily="Mangal" FontSize="14" Loaded="radGridView2_Loaded" AutoGenerateColumns="False"
                             RowStyleSelector="{StaticResource rowStyleSelector}" GroupRenderMode="Flat" ShowColumnSortIndexes="True" CanUserFreezeColumns="False" CanUserResizeColumns="False"
                             DataContext="{Binding}" IsReadOnly="True" DataLoading="radGridView2_DataLoading" DataLoaded="radGridView2_DataLoaded" GroupPanelForeground="#FFF01D1D"
                             ShowColumnFooters="True" ShowGroupFooters="True" AutoExpandGroups="True" GridLinesVisibility="Both" Grid.Row="1" Margin="0,0,35,0" MouseDoubleClick="radGridView2_MouseDoubleClick" 
                             ColumnWidth="52*">
            <telerik:RadGridView.ContextMenu>
                <ContextMenu>
                    <ContextMenu.Items>
                        <Button Command="{Binding PrintCommand}" CommandParameter="{Binding}">
                            <Button.Content>
                                <TextBlock Text="Print"/>
                            </Button.Content>
                        </Button>
                    </ContextMenu.Items>
                </ContextMenu>
            </telerik:RadGridView.ContextMenu>
         </telerik:RadGridView>

使用{Binding} 作为我的CommandParameter 不起作用,它给了我单击的行-该行的数据上下文-这是一些业务对象-我如何获取包含网格。

【问题讨论】:

    标签: c# wpf xaml telerik radgridview


    【解决方案1】:

    如果您的意思是“包含网格”,请尝试 RadGridView

    CommandParameter="{Binding PlacementTarget, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
    

    您将需要PlacementTarget 属性,因为ContextMenu 有自己的VisualTree。

    【讨论】:

      【解决方案2】:

      使用RelativeSource绑定到父元素数据上下文:

      CommandParameter="{Binding DataContext, RelativeSource={RelativeSource AncestorType=telerik:RadGridView}}"
      

      【讨论】:

      • 参数还是null
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2014-01-31
      • 2015-05-22
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      相关资源
      最近更新 更多