2013-07-19 178 views
0

我用this教程來構建一個自定義控件。現在,我想添加一條簡單的消息(一個文本塊)給用戶控件,爲用戶提供一些指導。我想我可以添加一個公共屬性,如本教程中的FileName,但是如何將textblock的Text屬性連接到後面代碼中的屬性?然後確保文本塊消息在屬性更改時更新。如何將TextBlock設置爲屬性值?

我喜歡能夠通過屬性在代碼中設置消息的想法,因爲我可能會在頁面上擁有多個此自定義控件類型的控件。我把它連接起來有點難。

謝謝!

+0

發佈相關代碼和XAML。 –

回答

1

這將是後面的代碼,它實現INotifyPropertyChanged:

/// <summary> 
/// Interaction logic for MainWindow.xaml 
/// </summary> 
public partial class MainWindow : Window, INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    private string _fileName; 

    /// <summary> 
    /// Get/Set the FileName property. Raises property changed event. 
    /// </summary> 
    public string FileName 
    { 
     get { return _fileName; } 
     set 
     { 
      if (_fileName != value) 
      { 
       _fileName = value; 

       RaisePropertyChanged("FileName"); 
      } 
     } 
    } 

    public MainWindow() 
    { 
     DataContext = this; 
     FileName = "Testing.txt"; 
    } 

    private void RaisePropertyChanged(string propertyName) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    }   
} 

這將是你的XAML結合的財產:

<TextBlock Text="{Binding FileName}" /> 

編輯:

新增的DataContext =這個;我通常不會綁定到背後的代碼(我使用MVVM)。

+0

所有這些都應該在UserCOntrol中 –

相關問題