我知道对于自定义属性我需要使用INotifyPropertyChanged接口和其他属性,但为什么要使用简单的属性:
public int CustomIndex {get; set; }
和...
<ProgressBar x:Name="pbGenerationProgress" Maximum="43" Value="{Binding CustomIndex}"/>
仅在启动时更新进度(例如,如果我在窗口构造函数中更改CustomIndex值)?
我需要始终使用InvokePropertyChanged
事件吗?
我使用简单的this.DataContext = this
作为数据上下文。
谢谢。
答案 0 :(得分:1)
是的,您始终需要实现该接口并调用InvokePropertyChanged
方法。
这是UI可以获得有关更改的通知的唯一方式。
您假设您需要使用INofityPropertyChanged来定制属性是正确的。 CustomIndex
是一个自定义属性。
示例:
class ViewModel : INotifyPropertyChanged
{
int _customIndex;
public int CustomIndex
{
get
{
return _customIndex;
}
set
{
_customIndex = value;
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("CustomIndex"));
}
}
}