我想创建一个datapager usercontrol。这个用户控件有一个事件在其代码中声明的背后:将一个ICommand绑定到一个自定义事件处理程序
public event EventHandler OnPageIndexPagerChanged;
我在主用户控件使用该控件,我在代码中我的事件绑定到另一个事件背后是这样的:
XAML:
OnPageIndexPagerChanged="SuperDataPager_OnPageIndexPagerChanged"
C#(代码后面):
private void SuperDataPager_OnPageIndexPagerChanged(object sender, EventArgs e)
{
var viewModel = DataContext as ViewSchedeConsuntiviViewModel;
if (viewModel != null)
{
viewModel.FilterCommand.Execute(sender);
}
}
这工作得很好,但我有李糟透了跳过通过代码传递一个这样做的背后:
OnPageIndexPagerChanged="{Binding Path=FilterCommand}"
这一点,我已经为过滤器按钮,出现在我的主要用户控件做的,所以我想我可以为这个事件做同样的。但每次我收到一个错误:
Impossibile assegnare阿拉proprietà 'Super.Silverlight.SuperDataPager.OnPageIndexPagerChanged'。 [行:90 位置:55]
'IEXPLORE.EXE'(Silverlight的):已加载“C:\ Program Files文件(x86)的\微软的Silverlight \ 4.0.60531.0 \是\ mscorlib.resources。 DLL”ス System.Windows.Application.LoadComponent(对象部件,乌里 resourceLocator)苏 Super.Silverlight.SchedeConsuntivi.InitializeComponent()苏 Super.Silverlight.SchedeConsuntivi..ctor()
对不起对于意大利语的错误,但我无法以获得确切的翻译 - >(无法分配财产...)
有人可以解释我这种行为?
感谢您的阅读,
[编辑] 下面是主要的用户控件的我的视图模型:
public class MyViewModel : DependencyObject, INotifyPropertyChanged
{
public ICommand FilterCommand { get; set; }
public MyViewModel()
{
FilterCommand = new Super.Silverlight.Tools.DelegateCommand<object>(p => Filter());
}
public void Filter()
{
//....blah blah blah...
}
}
[/编辑]