窗口资源中的ContextMenu,绑定到DataGrid属性

诺克斯

我想重复使用ContextMenu几个DataGrid因此,我将上下文菜单放在的ResourcesWindow

我有麻烦绑定到SelectedItem的财产DataGrid在其上ContextMenu放置。

在此示例中,我试图在上下文菜单中显示Name属性SelectedItem

<Window.Resources>
    <ContextMenu x:Key="DgContextMenu" 
        DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
        <MenuItem Header="{Binding SelectedItem.Name, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
    </ContextMenu>
</Window.Resources>

<DataGrid ItemsSource="{Binding CollectionView}" 
    ContextMenu="{StaticResource DgContextMenu}" 
    Tag="{Binding DataContext, RelativeSource={RelativeSource Self}}">
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="Name" Binding="{Binding Name}" />
    </DataGrid.Columns>
</DataGrid>

提前致谢

用户名

您编写示例的方式存在绑定错误,这就是为什么上下文菜单不起作用的原因。您已经将菜单项标题绑定到了不具有SelectedItem属性的ContextMenu对象的SelectedItem.Name(可以从菜单项绑定的RelativeSource部分看出来)。除其他方法外,一种可能的解决方案是通过PlacementTarget(而不是PlacementTarget.Tag)将ContextMenu的DataContext绑定到DataGrid。由于子级控件父级控件的“继承” DataContext,您只需在菜单项绑定中指定Path。它是这样的:

<Window.Resources>
    <ContextMenu x:Key="DgContextMenu" 
             DataContext="{Binding Path=PlacementTarget, RelativeSource={RelativeSource Self}}">
        <MenuItem Header="{Binding Path=SelectedItem.Name}" />
    </ContextMenu>
</Window.Resources>

<DataGrid ItemsSource="{Binding CollectionView}" 
      ContextMenu="{StaticResource DgContextMenu}" 
      >
</DataGrid>

基本上,如果您在VS调试器中运行应用程序并在“输出”窗口(“调试”->“窗口”->“输出”)中观察输出,则可以发现这些错误。在输出窗口中,您应该查找System.Windows.Data Error行,在该行中,您将看到您要绑定的对象和属性的类型,这将为您提供XAML绑定有问题的线索。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将DataGrid的GroupItem的ContextMenu的MenuItem绑定到窗口或控件的DataContext?

来自分类Dev

将组合框从主窗口资源属性绑定到itemsource

来自分类Dev

将ContextMenu绑定到Datagrid列

来自分类Dev

将对象属性内的对象绑定到WPF Datagrid中

来自分类Dev

WPF DataGrid绑定到List中的类的属性

来自分类Dev

绑定到DataGrid行工具提示WPF中的嵌套属性

来自分类Dev

将列表中的类的属性从ObservableCollection绑定到Datagrid

来自分类Dev

将资源属性绑定到DataContext属性

来自分类Dev

Datagrid根据属性值绑定到列表

来自分类Dev

Flex属性绑定到datagrid dataProivder数组

来自分类Dev

WPF DataGrid单元绑定到父属性

来自分类Dev

WPF DataGrid 绑定到 ItemsSource 项属性

来自分类Dev

如何在嵌套的DataGrid中绑定ContextMenu项目?

来自分类Dev

在 DataGrid (xceed) 中时,弹出窗口不会绑定到切换

来自分类Dev

将Xceed DataGrid的列属性绑定到viewmodel属性属性

来自分类Dev

将Xceed DataGrid的列属性绑定到viewmodel属性属性

来自分类Dev

使用资源中的图像将图像绑定到WPF中的属性

来自分类Dev

将WPF datagrid列标题绑定到后面代码中的属性

来自分类Dev

试图将datagrid项目源绑定到另一个类中的属性

来自分类Dev

Datagrid行背景颜色绑定到数据源集合中单个项目中的属性

来自分类Dev

绑定到datagrid rowdetails中的datepicker

来自分类Dev

WPF在DataGrid中绑定到DataContext

来自分类Dev

WPF:绑定到DataGrid中的行的SelectedItem

来自分类Dev

绑定到Datagrid中的组合框

来自分类Dev

在 WPF 中,将对象创建为资源时,如何“绑定”到通用属性?

来自分类Dev

WPF:将静态资源绑定到用户控件中的依赖项属性

来自分类Dev

如何将命令绑定到DataTemplate中的ContextMenu

来自分类Dev

如何从ContextMenu绑定到MVVM中的WPF DataGridColumn?

来自分类Dev

WPF 如何将命令绑定到 RichTextBox 中的 ContextMenu?

Related 相关文章

  1. 1

    如何将DataGrid的GroupItem的ContextMenu的MenuItem绑定到窗口或控件的DataContext?

  2. 2

    将组合框从主窗口资源属性绑定到itemsource

  3. 3

    将ContextMenu绑定到Datagrid列

  4. 4

    将对象属性内的对象绑定到WPF Datagrid中

  5. 5

    WPF DataGrid绑定到List中的类的属性

  6. 6

    绑定到DataGrid行工具提示WPF中的嵌套属性

  7. 7

    将列表中的类的属性从ObservableCollection绑定到Datagrid

  8. 8

    将资源属性绑定到DataContext属性

  9. 9

    Datagrid根据属性值绑定到列表

  10. 10

    Flex属性绑定到datagrid dataProivder数组

  11. 11

    WPF DataGrid单元绑定到父属性

  12. 12

    WPF DataGrid 绑定到 ItemsSource 项属性

  13. 13

    如何在嵌套的DataGrid中绑定ContextMenu项目?

  14. 14

    在 DataGrid (xceed) 中时,弹出窗口不会绑定到切换

  15. 15

    将Xceed DataGrid的列属性绑定到viewmodel属性属性

  16. 16

    将Xceed DataGrid的列属性绑定到viewmodel属性属性

  17. 17

    使用资源中的图像将图像绑定到WPF中的属性

  18. 18

    将WPF datagrid列标题绑定到后面代码中的属性

  19. 19

    试图将datagrid项目源绑定到另一个类中的属性

  20. 20

    Datagrid行背景颜色绑定到数据源集合中单个项目中的属性

  21. 21

    绑定到datagrid rowdetails中的datepicker

  22. 22

    WPF在DataGrid中绑定到DataContext

  23. 23

    WPF:绑定到DataGrid中的行的SelectedItem

  24. 24

    绑定到Datagrid中的组合框

  25. 25

    在 WPF 中,将对象创建为资源时,如何“绑定”到通用属性?

  26. 26

    WPF:将静态资源绑定到用户控件中的依赖项属性

  27. 27

    如何将命令绑定到DataTemplate中的ContextMenu

  28. 28

    如何从ContextMenu绑定到MVVM中的WPF DataGridColumn?

  29. 29

    WPF 如何将命令绑定到 RichTextBox 中的 ContextMenu?

热门标签

归档