c# - 在WPF中将View作为命令参数传递。紫罗兰色MVVM方法吗?

标签 c# wpf mvvm

我有数据网格,其中有一些列。行数。当用户单击该行的上下文菜单时,我想显示一个窗口。我需要从该行的 View 模型中获取第一列值以获取一些逻辑。当前,我正在将放置目标作为命令参数传递给gridviewrow。以下是我的代码

<telerik:RadGridView.RowStyle>
                                    <Style TargetType="telerik:GridViewRow">
                                        <Setter Property="Tag" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" ></Setter>
                                        <Setter Property="ContextMenu">

                                            <Setter.Value>
                                                <ContextMenu>
                                                    <MenuItem Header="show Window" Command="{Binding PlacementTarget.Tag.DataContext.ShowChart,RelativeSource={RelativeSource AncestorType=ContextMenu, Mode=FindAncestor}}" CommandParameter="{Binding PlacementTarget, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"></MenuItem>


                                                </ContextMenu>
                                            </Setter.Value>


                                        </Setter>

                                    </Style>
                                </telerik:RadGridView.RowStyle> 

如何传递用户单击的特定行的第一列的值?

它是紫色MVVM方法吗?在这种情况下,如果是紫色MVVM方法是什么解决方案?

最佳答案

从理论上说是的,因为访问 View 的唯一方法是通过INotifyPropertyChanged和IErrorDataInfo。但是,这取决于您打算做什么。如果您想更改UI元素的可视性,我将MVVM模式设置为紫色,因为相反的方法对我来说似乎很复杂。我建议告诉您您想做什么,也许我可以为您提供帮助:)

关于c# - 在WPF中将View作为命令参数传递。紫罗兰色MVVM方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25933484/

相关文章:

c# - 从分隔字符串填充 Dictionary<String,String> 的最 'elegant' 方法

c# - 避免继承树中的大量强制转换

WPF - MVVM - NHibernate 验证

wpf - 在 MVVM 中,拖动完成后打开上下文菜单

wpf - ViewModel 每个 View 还是每个模型?

c# - CSV Helper 解析器抛出 IOException。无法从传输连接读取数据

c# - 为什么我的 Unity C# 脚本中的变量重置为 0

c# - 将 URI 打包到引用程序集中的资源

wpf - wpf 中的可拖动弹出控件

c# - 使用 MVVM 在 WPF 中监控后台剪贴板并在 View 中绑定(bind)复制的上下文