1
我在我的WPF應用程序中有一個屬性,我試圖綁定到UI。當我直接在viewmodel內更新屬性時,它就像我期望的那樣工作。但是,當我嘗試使用事件從另一個類中更新此屬性時,綁定似乎不起作用。在仔細觀察下,我認爲這是因爲PropertyChangedEventHandler在發生這種情況時爲空。從Event更新Viewmodel - PropertyChangedEventHandler爲空?
我的視圖模型內部屬性:
public int BeatNumber
{
get
{
return beatNumber;
}
set
{
if (beatNumber != value)
{
this.beatNumber = value;
RaisePropertyChanged(() => BeatNumber);
}
}
}
事件內視圖模型:
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;
}
我如何得到這個綁定更新時,我的事件從另一個班叫?
您PropertyChangedEventHandler爲空它告訴也就是說,它沒有被設置爲按時間UI的的DataContext你提到的事件改變中的屬性你的虛擬機未綁定到UI它 – Nitin
有沒有什麼辦法可以確保ViewModel在執行任何代碼之前被綁定?即。確保在構造函數中的綁定? – user547794
是的,您將虛擬機設置爲datacontext在其構造函數中查看... – Nitin