很简单的问题,window b 在操作完成后,对数据库进行了了修改,window a上绑定的数据库需要更新,怎么去通信,让b在修改完成后a直接就刷新数据源?
目前我的解决方法是将b做成usercontrol嵌入到a中,但是b没有自己的事件,而且这样界面很难看,请高手指教。

解决方案 »

  1.   

    使用INotifyPropertyChanged,两者操纵同一份数据源比如数据库的字段
    public event PropertyChangedEventHandler PropertyChanged;private void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this,
              new PropertyChangedEventArgs(propertyName));
        }
    }private string _Name;
    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value;
            OnPropertyChanged("Name");
        }
    }
    一方Set的时候界面就会知道数据源发生变化重取数据了当然,你也可以封装属性,内部为DependenceProperty或者显式指定UpdateTarget来更新数据Hope this helps
      

  2.   

    使用INotifyPropertyChanged,两者操纵同一数据源
    数据字段public event PropertyChangedEventHandler PropertyChanged;private void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this,
              new PropertyChangedEventArgs(propertyName));
        }
    }private string _Name;
    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value;
            OnPropertyChanged("Name");
        }
    }当然你也把属性封装,内部封装一个DependenceProperty或者显式调用UpdateTarget来通知界面更新Hope this helps
      

  3.   

    使用INotifyPropertyChanged,两者操纵同一数据源
    数据字段public event PropertyChangedEventHandler PropertyChanged;private void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this,
              new PropertyChangedEventArgs(propertyName));
        }
    }private string _Name;
    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value;
            OnPropertyChanged("Name");
        }
    }当然你也把属性封装,内部封装一个DependenceProperty或者显式调用UpdateTarget来通知界面更新Hope this helps