DataBinding仅在启动时绑定数据

时间:2014-05-23 11:27:45

标签: c# wpf binding

我知道对于自定义属性我需要使用INotifyPropertyChanged接口和其他属性,但为什么要使用简单的属性:

public int CustomIndex {get; set; }

和...

<ProgressBar x:Name="pbGenerationProgress" Maximum="43" Value="{Binding CustomIndex}"/>

仅在启动时更新进度(例如,如果我在窗口构造函数中更改CustomIndex值)?

我需要始终使用InvokePropertyChanged事件吗?

我使用简单的this.DataContext = this作为数据上下文。

谢谢。

1 个答案:

答案 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"));
         }
    }
}