【发布时间】:2014-09-25 06:17:26
【问题描述】:
有一个 WPF 数据网格绑定到一个 observablecollection,它是从数据库中填充的,它可以根据列值的值是可编辑的或不可编辑的。
现在,希望通过可编辑的上下文菜单单击在数据网格中添加一个新行,尽管已经存在的行将不可编辑(即禁用)。
这可以通过使用列值上的数据触发器并在绑定值上定义转换器来实现,即,将 selectedItem 到行。现在,问题是当我添加新行时,我传递的命令参数是 selectedItem 即,
菜单项代码:
MenuItem Header="Add" Command="{Binding AddClickCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}, Path=PlacementTarget.SelectedItem}"
所以,这是我单击添加新行(第 2 行)的现有行(即第 1 行),因此,我得到了现有行(即第 1 行)的上下文。
谁能帮我获取添加的新行的上下文,即第 2 行,我可以通过它设置某些标志以使该行可编辑!
【问题讨论】:
标签: wpf mvvm contextmenu wpfdatagrid