在wpf

时间:2016-04-03 12:27:12

标签: wpf

我已使用此处发布的答案实施了绑定:WPF Binding to local variable 还有这个: https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx

看起来像这样:

public partial class AddCard: DXWindow, INotifyPropertyChanged
{
   public event PropertyChangedEventHandler PropertyChanged;
   private int _CardNumber;

   public int CardNumber
   { 
       get { return _CardNumber; }
       set
       {
           if (value != _CardNumber)
           {
              _CardNumber = value;
              OnPropertyChanged("CardNumber");
           }
       }
   }

   private void OnPropertyChanged(string p)
   {
       if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(p));
   }
}
xaml中的

(我使用DevExpress组件):

    <dx:DXWindow
        DataContext="{Binding RelativeSource={RelativeSource Self}}"
    .../>

<dxe:TextEdit Text="{Binding Path=CardNumber}"/>

问题: 更新代码中的CardNumber值时 - 它会更新窗口上的文本框,但是更新窗口中的文本框 - 不会在代码中更新CardNumber的属性。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

默认情况下,更新仅在控件失去焦点时传播。我怀疑你希望他们立即更新,在这种情况下将“UpdateSourceTrigger = PropertyChanged”添加到你的绑定。