Как конвертировать TextBlock в строку в C # из WPF? - PullRequest
0 голосов
/ 29 мая 2011

Как конвертировать TextBlock в строку в c # из wpf?У меня есть список, который содержит текстовый блок, чтобы изменить цвет переднего плана.но когда я получаю listbox.selecteditem, он, очевидно, возвращает текстовый блок, но мне нужно знать, что такое текстовый блок, преобразованный в строку.как мне это сделать?

Ответы [ 2 ]

7 голосов
/ 29 мая 2011

По историческим причинам существует следующий регион.


TextBlock.Text?

Редактировать: Чтобы процитировать документацию, на которую я ссылался:

TextBlock textBlock = new TextBlock();
textBlock.Text = "The text contents of this TextBlock.";

Если вы все еще не можете придумать способ извлечь текст из TextBlock сейчас... я даже не знаю, что тогда.

Редактировать:

... знать, что такое текстовый блок ...

Это настолько неопределенно, насколько это возможно.


Начало ответа (Поскольку это не было очевидно)

Основываясь на некоторых ваших комментариях, вы, очевидно, пытаетесь восстановить информацию на основе TextBlock, который вы получаете из ListBox.TextBlocks не содержат (и не должны) содержать информацию о состоянии объекта, если у вас больше информации, чем просто текста, вы должны создать новый класс с соответствующими свойствами, связать с коллекцией таких объектов и datatemplateколлекция соответственно.

Таким образом, SelectedItem будет объектом класса, который содержит необходимую информацию, и если вы отредактируете эту информацию, пользовательский интерфейс отразит эти изменения. Текстовые блоки не являются гомеопатическими устройствами .

Конечный ответ

От того, какой ответ вы приняли на этот вопрос мне кажется, что вы просто не хотите беспокоиться о связывании данных и обо всех вещах, которые делают WPF такой замечательной платформой.Способ цепляться за подверженное ошибкам императивное создание пользовательского интерфейса.


Take 9001:

 string text = (listbox.SelectedItem as TextBlock).Text;

This?

2 голосов
/ 29 мая 2011

Вы не можете преобразовать TextBlock в строку.Если вы имеете в виду содержание, посмотрите ответ HB. * ​​1001 *

...