C# Silverlight中的OneWayToSource和更新资源问题

C# Silverlight中的OneWayToSource和更新资源问题,c#,silverlight,binding,prism,C#,Silverlight,Binding,Prism,在使用Prism 2.2作为MVVM构建的应用程序中,将CommandParameter绑定到自己的命令时遇到了一些问题。让我来介绍一下发生了什么事。 我有一个定制的列表框,其中有一个名为NumPageElements的属性,还有几个按钮,可以滚动列表中需要该属性的人。我在wpf中需要(和工作)的简化xaml是: <Button x:Name="PageDownButton" Command="{Binding PageDownCommand}" CommandParameter="{Bi

在使用Prism 2.2作为MVVM构建的应用程序中,将CommandParameter绑定到自己的命令时遇到了一些问题。让我来介绍一下发生了什么事。 我有一个定制的列表框,其中有一个名为NumPageElements的属性,还有几个按钮,可以滚动列表中需要该属性的人。我在wpf中需要(和工作)的简化xaml是:

<Button x:Name="PageDownButton" Command="{Binding PageDownCommand}" CommandParameter="{Binding ElementName=ItemsListBox, Path=NumPageElements}" />

<Custom:MyOwnListBox x:Name="ItemsListBox" x:NumPageElements="{Binding ElementsPerPage, Mode=OneWayToSource}" >
. . .
</Custom:MyOwnListBox>

. . .
为了在Silverlight中具有相同的行为,我编写了以下xaml:

<Button Name="PageDownButton" Command="{Binding PageDownCommand}" CommandParameter="{Binding ElementName=ItemsListBox, Path=NumPageElements}" />

<Custom:MyOwnListBox Name="ItemsListBox" NumPageElements="{Binding Path=ElementsPerPage, Mode=TwoWay, UpdateSourceTrigger=Explicit}" >
. . .
</Custom:MyOwnListBox>

. . .
PageDownButton是IApplicationCommand,ElementsPerPage是演示者公开的属性。 现在,我第一次打开这个视图时,这样做的按钮看起来是启用的,但它们不是“可点击的”。如果我切换到另一个视图并使用这些按钮返回视图,它们最终会捕捉到正确的行为。看起来它在第一次初始化命令的条件时没有正确初始化(事实上,在我在列表框中插入一项之前,它们应该被禁用),就好像通过CommandParameter属性给出的参数没有正确初始化一样。但是我不明白为什么在不同的视图之间切换可以使它工作

我怀疑我应该在视图加载后强制更新绑定的源(我为ItemsListBox.NumPageElements和PageDownButton.CommandParameter执行了更新),但在代码隐藏中这样做没有任何帮助

我做错了什么? 谢谢你的回复, 垫子