我想創建一個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...
}
}
[/編輯]