2010-11-18 19 views
1

Uygulamamın ana bileşeni, sayı sayısı N olan ve bu görünümlerin 'veri yapısı ayrı bir ViewModel nesnesi olan bir sekme denetimidir. Uygulamanın alt kısmında bir durum çubuğum var ve birkaç metin kutusu içeriyor. Şu anda seçili olan sekme için bir zaman damgasını yansıtacak olan metin kutularından birini istiyorum. Zaman damgası, görünümün veri yapısı olarak ayarlanmış olan ViewModel nesnesinin bir özelliğidir.WPF ve ViewModel Özellik Erişimi

Ben bir WPF newb yaşıyorum ve bu özelliği durum çubuğuna nasıl bağlayacağınızdan emin değilim. gibi

cevap

3

ViewModel'inizin INotifyPropertyChanged'i uyguladığından emin olun. SelectedContent.DataContext.Timestamp kullanma Örneğin

...

/// <summary> 
/// Sample ViewModel. 
/// </summary> 
public class ViewModel : INotifyPropertyChanged 
{ 
    #region Public Properties 

    /// <summary> 
    /// Timestamp property 
    /// </summary> 
    public DateTime Timestamp 
    { 
     get 
     { 
      return this._Timestamp; 
     } 
     set 
     { 
      if (value != this._Timestamp) 
      { 
       this._Timestamp = value; 

       // NOTE: This is where the ProperyChanged event will get raised 
       //  which will result in the UI automatically refreshing itself. 
       OnPropertyChanged("Timestamp"); 
      } 
     } 
    } 

    #endregion 


    #region INotifyPropertyChanged Members 

    /// <summary> 
    /// Event 
    /// </summary> 
    public event PropertyChangedEventHandler PropertyChanged; 

    /// <summary> 
    /// Raise the PropertyChanged event. 
    /// </summary> 
    protected void OnPropertyChanged(string propertyName) 
    { 
     if (this.PropertyChanged != null) 
     { 
      this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 

    #endregion 


    #region Private Fields 

    private DateTime _Timestamp; 

    #endregion 
} 
+0

Harika çalışıyor, teşekkürler! – jlafay

1

şey:

<TextBox Text="{Binding ElementName=tabControl, Path=SelectedItem.DataContext.Timestamp}" /> 

Biraz da tabcontrol en ItemsSource veri sınırlama olup olmadığını bağlı.

+0

biraz çalıştı. Başka bir sekme seçmedikçe ve o sekmeyi tekrar seçmedikçe güncellenmez. Bu özellik değiştiğinde metin bloğunu güncellemek için ne yapabilirim? – jlafay

+0

Tüm ViewModels uygulamanız INotifyPropertyChanged? – ChrisNel52

+0

@ Chris, hayır yapmıyorlar. Bu arayüzün farkında değildim, WPF için yeniyim :) Daha fazla okumam var gibi görünüyor. – jlafay

İlgili konular