2016-10-26 140 views
0

我有一個GridControl(Devexpress v13)視圖(WPF)。 A Datatable在ViewModel中設置值並分配給ItemsSource。但ItemsSource只填充初始化。稍後Datatable的值會更改,但不會刷新。 如何ItemsSource刷新?如何刷新MVVM中的Devexpress GridControl ItemsSource(作爲數據表)(WPF)

<dxg:GridControl Name="GridControlData" DataSource="{Binding DtCriterias, Mode=TwoWay}" HorizontalAlignment="Left" VerticalAlignment="Top" AutoGenerateColumns="AddNew" Width="400" Height="100"> 

我希望你明白我的意思。 任何幫助將不勝感激。

在此先感謝。

編輯: 物業使用變更:

public DataTable DtCriterias { 
      get { return _dtCriterias; } 
      set 
      { 
       _dtCriterias = value; 
       Notify(() => DtCriterias); 
      } 
     } 

protected void Notify(Expression<Func<object>> expression) 
     { 

      if (_propertyChangedEvent == null) return; 

      Notify(GetPropertyName(expression)); 
     } 

protected void Notify(string propertyName) 
     { 
      if (_propertyChangedEvent != null) 
      { 
       _propertyChangedEvent(this, new PropertyChangedEventArgs(propertyName)); 
      } 
     } 

回答

0

我發現問題的原因。 我正在使用封裝,並設置了私有值(_dtCriterias)。因此Property Changed Event不起作用。

定義:

private DataTable _dtCriterias; 

public DataTable DtCriterias { 
    get { return _dtCriterias; } 
    set 
    { 
     _dtCriterias = value; 
     Notify(() => DtCriterias); 
    } 
} 

當我有問題的數據表組:

_dtCriterias = GetValue().DefaultView.ToTable("FooTable"); 

解決方案:

DtCriterias = GetValue().DefaultView.ToTable("FooTable"); 
0
public ObservableCollection<ClientB2B> Clients 
{ 
    get 
    { 
     return _clients; 
    } 
    set 
    { 
     if (_clients == value) return; 
     _clients = value; 
     OnPropertyChanged(); // This is what you need 
    } 
} 

實現此接口 - INotifyPropertyChanged的

protected void OnPropertyChanged(PropertyChangedEventArgs e) 
{ 
    PropertyChangedEventHandler handler = PropertyChanged; 
    if (handler != null) 
     handler(this, e); 
} 

protected void OnPropertyChanged(string propertyName) 
{ 
    OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); 
} 

public event PropertyChangedEventHandler PropertyChanged; 
+0

我使用的屬性更改事件,但它不會刷新 –

+0

這是不是問題。在我的代碼中將ObservableCollection更改爲DataTable。 – Bofort

+0

我編輯第一個評論:) –

相關問題