【发布时间】:2014-06-24 15:24:20
【问题描述】:
我正在尝试将命令绑定到视图模型,但它没有触发
xmlns:ViewModel="clr-namespace:Lister.WPF.ViewModels"
DataContext="{Binding ViewModel:TweetViewModel}" Icon="pack://siteoforigin:,,,/Resources/internet_down_16_hot.png" Loaded="Window_Loaded">
<Grid>
<!--Test-->
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem BorderThickness="5" Header="Status">
<MenuItem BorderThickness="5" Header="Timeline" Command="{Binding RefreshTweetsCommand}"/>
这是来自虚拟机的代码
private RelayCommand _refreshTweetsCommand;
public RelayCommand RefreshTweetsCommand
{
get
{
return _refreshTweetsCommand ??
(_refreshTweetsCommand =
new RelayCommand(RefreshTweetList, LoadTweets));
}
}
【问题讨论】:
-
作为弹出控件,ContextMenu 不在可视化树中——因此它不继承 DataContext。有解决方法,请参见此处,例如:stackoverflow.com/a/3910726/1001985
-
@McGarnagle 这是菜单而不是 ContextMenu,它将具有父级的 DataContext。
-
它不是上下文菜单,该命令运行良好
-
@nit 我的错,对不起。必须更加小心核关闭。