bartwell
@bartwell

Как работать с RichTextBox внутри LongListSelector?

Использую RichTextBox в LongListSelector следующим образом:
<phone:LongListSelector Name="myLLS">
    <phone:LongListSelector.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Vertical">
                <TextBlock Text="{Binding Name}" />
                <TextBlock Text="{Binding Surname}" />
                <RichTextBox IsReadOnly="True" />
            </StackPanel>
        </DataTemplate>
    </phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>


C# код:
ObservableCollection<ListItem> listItems = new ObservableCollection<ListItem>();

public MainPage()
    {
        InitializeComponent();

        myLLS.ItemsSource = listItems;

        listItems.Add(new ListItem("John", "Smith", "Some big and formatted text 1"));
        listItems.Add(new ListItem("Bill", "Dixon", "Some big and formatted text 2"));
        listItems.Add(new ListItem("Ralph", "Watson", "Some big and formatted text 3"));
    }

public class ListItem
    {
        private string _name;
        private string _surname;

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        public string Surname
        {
            get { return _surname; }
            set { _surname = value; }
        }

        public ListItem(string name, string surname, string description)
        {
            this.Name = name;
            this.Surname = surname;
            // How to set content to my RichTextBox here?
        }
    }

С использованием TextBlock никаких проблем, текст нормально присваивается. Но мне нужно присваивать текст и RichTextBox. Как это сделать?
  • Вопрос задан
  • 2365 просмотров
Пригласить эксперта
Ответы на вопрос 1
std
@std
Через самописное attached-свойство. В зависимости от требований это может быть свойство с типами string или Block (коллекция Block-ов). В обработчике изменения свойства наполняется содержимое RichTextBox.Blocks, Block-ами сформированными из attached-свойства.

И далее в XAML:
<RichTextBox local:RichTextBinding.Source="{Binding Description}" ... />
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы