#c# #textblock #windows-rt
#c# #текстовый блок #windows-rt
Вопрос:
Кто-нибудь знает, как назначить строку текстовому блоку?
например, у меня есть строка с переменным содержимым и текстовый блок. Текст текстового блока всегда должен соответствовать содержимому строки.
string number;
public MainPage()
{
//the textBlock text should now be "1"
number = "1";
//the textBlock text should now be "second"
number = "second";
}
Я пытался сделать это автоматически с помощью привязок, но не смог найти решение.
с уважением, Кристиан
Комментарии:
1. Почему бы не использовать
TextBlock.Text
свойство2. Я уже использую это, но писать это при каждом изменении строки очень громоздко.
3. Определите частное свойство для вашей строки, и оно будет setter , установите значение вашим
TextBlock.Text
вот что вы можете сделать, чтобы имитировать его.4. Посмотрите на привязку данных.
5. Привязка данных @Habib — гораздо более чистый способ сделать это.
Ответ №1:
Для работы привязки данных вам нужно иметь свойство a, а не просто простую переменную-член. И ваш класс Datacontext должен реализовывать интерфейс INotifyPropertyChanged.
public class MyDataContext : INotifyPropertyChanged
private string number;
public string Number {
get {return number;}
set {number = value; NotifyPropertyChanged("Number");}
}
// implement the interface of INotifyPropertyChanged here
// ....
}
public class MainWindow() : Window
{
private MyDataContext ctx = new MyDataContext();
//This thing is out of my head, so please don't nail me on the details
//but you should get the idea ...
private void InitializeComponent() {
//...
//... some other initialization stuff
//...
this.Datacontext = ctx;
}
}
И вы можете использовать это в XAML следующим образом
<Window ...>
<!-- some other controls etc. -->
<TextBlock Text={Binding Number} />
<!-- ... -->
</Window>
Комментарии:
1. Обратите внимание, что для того, чтобы это сработало, вам нужно присвоить «Number», а не «число». Отображение настройки строки привязки также сделало бы этот ответ намного лучшим. 1 за правильный подход, хотя.
2. Спасибо за ваш комментарий. Я отредактировал свой ответ в соответствии с вашим предложением. Это не самое красивое решение, но идею следует уловить.