【发布时间】:2012-04-27 08:41:03
【问题描述】:
这里我有一个名为“ChildView”的 UserControl,它有一个名为“listView”的 ListView 控件。 我正在尝试将此 listView 的“SelectedItems”属性绑定为我的主窗口中的命令参数,但没有发生。 执行函数参数始终为空。
下面是代码sn-p。
ChildView
<UserControl x:Class="MyProj.Views.ChildView"
…………..
<ListView x:Name="listView" …………..
MainView
…………..
<views:ChildView x:Name="childView" />
…………..
<Button Command="{Binding ElementName=childView, Path=DataContext.CmdCopyLines}" CommandParameter="{Binding ElementName=childView, Path=DataContext.listView.SelectedItems}" Label="Copy" />
…………..
但它是直接从子视图发生的
ChildView
<UserControl x:Class="MyProj.Views.ChildView"
…………..
<ListView x:Name="listView"
…………..
<Button Command="{Binding CmdCopyLines}" CommandParameter="{Binding ElementName=listView, Path=SelectedItems}" Label="Copy" />
…………..
任何帮助将不胜感激
【问题讨论】:
-
在您的 ChildView 用户控件上,您是将其 DataContext 设置为您的 ViewModel,然后在您的 ViewModel 中创建命令,还是在您将其设置为 DataContext 之前完全构造和初始化 ViewModel?
-
嗨,Dean,我的子 ViewModel 在我将其设置为 DataContext 之前已完全构造和初始化(命令也是)。从 App 创建 MainWindow ViewModel 对象,从 MainWindow ViewModel 的构造函数创建子 ViewModel 对象,最后我为 MainWindow 及其子 View 设置 Data DataContext。