我正在使用Avalon Wizard控件,我有很多页面,但只有 2 个给我带来了问题,所以它们将包含在内:
<Grid Name="MainGrid">
<w:Wizard Name="MyWizard"
w:Designer.PageIndex="0"
DataContext="{Binding ElementName=MainGrid, Path=DataContext.Policy}">
<w:WizardPage Header="Main Member"
MaxHeight="600"
AllowNext="{Binding ElementName=MainGrid, Path=DataContext.CanContinue}"
Name="MainPage">
<w:WizardPage Name="DeductionPage"
Header="Policy Details"
AllowNext="{Binding ElementName=MainGrid, Path=DataContext.CanContinue}">
现在对于问题,主页的允许下一个工作正常,但是在扣除页面上,下一个按钮始终可用,尽管 CanContinue 属性设置为 false!
请注意,CanContinue
仅在加载第二页时才设置为 false。
private bool canContinue;
public bool CanContinue
{
get { return canContinue; }
set
{
canContinue = value;
NotifyPropertyChanged("CanContinue");
}
}
--
更新
我查看了输出窗口,发现以下异常:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=MainGrid'. BindingExpression:Path=DataContext.CanContinue; DataItem=null; target element is 'WizardPage' (Name='DeductionPage'); target property is 'AllowNext' (type 'Boolean')
这发生在我的问题所在的页面上,但为什么它只会出现在第二页上?第一页和第二页绑定到完全相同的东西,第一页完美运行!
问题出在除第一页外的所有页面上,都是同一级别的同一向导的子级。
有什么建议么?