簡體   English   中英

WPF Avalon向導綁定問題

[英]WPF Avalon Wizard Binding Issue

我正在使用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");
  }
}

-

UPDATE

我查看了輸出窗口,發現以下異常:

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')

這是在我的問題所在的頁面上發生的,但為什么僅在第二頁上出現問題? 第一頁和第二頁綁定到完全相同的東西,第一頁完美地運作!

問題出現在除第一頁之外的所有頁面上,所有頁面都是同一級別的同一向導的子項。

有什么建議么?

沒有看到CanContinue的代碼,這是一個猜測。 但是,在這些情況下,罪魁禍首通常是由於沒有引發INotifyPropertyChanged事件的屬性。 在您的情況下,屬性CanContinue必須引發INotifyPropertyChanged事件。

基本上,每當需要評估CanContinue的值時,必須引發INotifyPropertyChanged。 這將通知UI, CanContinue的值已更改,UI必須重新評估綁定。

通常,INotifyPropertyChanged會在屬性本身之外被提升。 例如,當某個方法執行某些工作時,需要確保UI仍然正確綁定。 在您的情況下,這可能是在頁面之間導航時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM