1

我的 WPF 应用程序中有一个属性,我正在尝试绑定到 UI。当我直接在视图模型中更新属性时,它会按预期工作。但是,当我尝试使用事件从另一个类中更新此属性时,绑定似乎不起作用。经过仔细检查,我认为这是因为 PropertyChangedEventHandler 在发生这种情况时为空。

我在 ViewModel 中的属性:

public int BeatNumber
        {
            get
            {
                return beatNumber;
            }
            set
            {
                if (beatNumber != value)
                {
                    this.beatNumber = value;
                    RaisePropertyChanged(() => BeatNumber);
                }
            }
        }

ViewModel 中的事件:

public event EventHandler GetHtmlDone = delegate { };


public void GetHTML(string url)
{
    BeatNumber++;
}

通知对象:

public class NotificationObject : INotifyPropertyChanged
    {
        protected void RaisePropertyChanged<T>(Expression<Func<T>> action)
        {
            var propertyName = GetPropertyName(action);
            RaisePropertyChanged(propertyName);
        }

        private static string GetPropertyName<T>(Expression<Func<T>> action)
        {
            var expression = (MemberExpression)action.Body;
            var propertyName = expression.Member.Name;
            return propertyName;
        }

        private void RaisePropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }



        public event PropertyChangedEventHandler PropertyChanged;
    }

当从另一个类调用我的事件时,如何更新此绑定?

4

1 回答 1

0

通过使用命令而不是从事件中调用方法来解决它。

有关详细信息,请参阅ICommand 接口

于 2013-10-06T23:00:57.330 回答