2 回答
TA贡献1784条经验 获得超2个赞
你没有显示你所有的代码和上下文,但它应该像这样工作我假设你在一个用户控件中校准父数据上下文......(以列表视图为例):
<ListView ItemsSource="{Binding listFromDataContext, IsAsync=True}" Margin="3,51,0,10" >
<ListView.ItemTemplate >
<DataTemplate>
<grid>
<Button Command="{Binding DataContext.MyMethode, RelativeSource={RelativeSource AncestorType={x:Type controls:thisUserControl}}}" CommandParameter="{Binding}" />
</grid>
</DataTemplate>
</ListView.ItemTemplate >
</ListView>
然后在模型中
private ICommand _MyMethode;
public ICommand MyMethode
{
get
{
return _MyMethode ?? (_MyMethode = new CommandHandler<MyModel.item>(x => showMessage(x), _canExecute));
}
}
public void showMessage(MyModel.item x)
{
MessageBox.Show(x.Info);
}
TA贡献1873条经验 获得超9个赞
首先,如果您Button
在 a 中Grid
,DataContext
则不需要设置Path
like Path=ParentRow.DataContext
。
你的Command
绑定应该是这样的:
<Button Command="{Binding YourVMICommand"} />
您必须public ICommand
在 VM 中定义一个,然后将其绑定到按钮。
- 2 回答
- 0 关注
- 163 浏览
添加回答
举报