属性变为空C#WPF
当我设置数据时,我面临属性变为空的问题属性变为空C#WPF,c#,wpf,properties,null,C#,Wpf,Properties,Null,当我设置数据时,我面临属性变为空的问题 SelectedItem="{Binding PropertyName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" public className PropertyName { get{return this._PropertyName;} set{this._PropertyName = value;} } 问题是在视图模型中指定数据时 PropertyName = new className
SelectedItem="{Binding PropertyName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
public className PropertyName
{
get{return this._PropertyName;}
set{this._PropertyName = value;}
}
问题是在视图模型中指定数据时
PropertyName = new className ();
“值”当我调试并检查setter时,setter中的
为空问题在于模式=双向
,该模式表示在UI上所做的任何更改都将反映到绑定的属性上,反之亦然,但因为您尚未将INotifyPropertyChanged
接口的OnPropertyChanged
事件添加到属性绑定到UI时,您将面临问题。
只需将PropertyChanged
添加到绑定到UI的所有属性
public className PropertyName
{
get{return this._PropertyName;}
set
{
this._PropertyName = value;
OnPropertyChanged("PropertyName");
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// Raises this object's PropertyChanged event.
/// </summary>
/// <param name="propertyName">The property that has a new value.</param>
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
#endregion
public类名称PropertyName
{
获取{返回此。\u PropertyName;}
设置
{
这是。_PropertyName=value;
OnPropertyChanged(“PropertyName”);
}
}
#区域INotifyProperty更改成员
公共事件属性更改事件处理程序属性更改;
///
///引发此对象的PropertyChanged事件。
///
///具有新值的属性。
受保护的虚拟void OnPropertyChanged(字符串propertyName)
{
PropertyChangedEventHandler处理程序=this.PropertyChanged;
if(处理程序!=null)
{
var e=新的PropertyChangedEventArgs(propertyName);
处理者(本,e);
}
}
#端区
您的类应该实现INotifyPropertyChanged
接口
public className PropertyName
{
get { return this._PropertyName; }
set
{
this._PropertyName = value;
if(PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("PropertyName"));
}
}
}
当您在代码UI中更改属性的值时,不知道该值,并将空值反映回属性。旁注:如果您调整类型和属性的大小写,可能会对您和我们有所帮助。这非常令人困惑。
PropertyChanged
事件实现在哪里?