我用this教程來構建一個自定義控件。現在,我想添加一條簡單的消息(一個文本塊)給用戶控件,爲用戶提供一些指導。我想我可以添加一個公共屬性,如本教程中的FileName,但是如何將textblock的Text屬性連接到後面代碼中的屬性?然後確保文本塊消息在屬性更改時更新。如何將TextBlock設置爲屬性值?
我喜歡能夠通過屬性在代碼中設置消息的想法,因爲我可能會在頁面上擁有多個此自定義控件類型的控件。我把它連接起來有點難。
謝謝!
我用this教程來構建一個自定義控件。現在,我想添加一條簡單的消息(一個文本塊)給用戶控件,爲用戶提供一些指導。我想我可以添加一個公共屬性,如本教程中的FileName,但是如何將textblock的Text屬性連接到後面代碼中的屬性?然後確保文本塊消息在屬性更改時更新。如何將TextBlock設置爲屬性值?
我喜歡能夠通過屬性在代碼中設置消息的想法,因爲我可能會在頁面上擁有多個此自定義控件類型的控件。我把它連接起來有點難。
謝謝!
這將是後面的代碼,它實現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)。
所有這些都應該在UserCOntrol中 –
發佈相關代碼和XAML。 –