Nano Hash - криптовалюты, майнинг, программирование

Привязка текста RichTextBox к выбранному элементу ListBox в WPF?

У меня есть представление, которое содержит ListBox и RichTextBox. Мой ListBox привязан к ObservableCollection и прекрасно работает:

 <ListBox Name="checkListBox1" ItemsSource="{Binding ModelviewArticleObservableList}" SelectedItem="{Binding SelectedArticle, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="ArticleHeader" />

Теперь я хочу связать свой текст RichTextBox с SelectedItem моего ListBox, отображая столбец, отличный от ObservableCollection (ArticleBody).

Вот мое открытое строковое свойство в моем ViewModel:

    private string _SelectedArticle;
    public string SelectedArticle
    {
        get { return _SelectedArticle; }
        set
        {
            _SelectedArticle = value;
            OnPropertyChanged("SelectedArticle");
        }
    }

и вот мой текущий RichTextBox Xaml:

 <xctk:RichTextBox Name="richTextBox1" Text="{Binding SelectedArticle, Mode=TwoWay}" />

Теперь выбранный элемент запускается при выборе ListBox, но мой RichTextBox text, очевидно, отображает имя класса, а не текст ArticleBody, который я хочу.

Как мне заставить мое строковое свойство SelectedArticle возвращать ArticleBody, а не имя класса?

30.05.2014

  • Напишите IValueConverter, который возвращает нужный текст вместо имени класса. 30.05.2014
  • @Hardgraf, какой тип ModelviewArticleObservableList? Это ObservableList<ModelviewArticle> или ObservableList<string>? 30.05.2014
  • @dkozl это ObservableCollection‹viewArticle› ViewArticle — это класс моей модели с открытыми свойствами, включая «ArticleBody». Я понимаю, что мое строковое свойство SelectedArticle не может понять передаваемый объект ViewArticle, но не знаю, как справиться с этой проблемой... Спасибо. 30.05.2014

Ответы:


1

Поскольку ModelviewArticleObservableList является ObservableCollection<viewArticle>, измените SelectedArticle на тип viewArticle (такой же, как тип вашего предмета коллекции).

private viewArticle _SelectedArticle;

public viewArticle SelectedArticle
{
    get { return _SelectedArticle; }
    set
    {
        _SelectedArticle = value;
        OnPropertyChanged("SelectedArticle");
    }
}

а затем измените привязку RichTextBox, чтобы использовать путь SelectedArticle.ArticleBody

<xctk:RichTextBox Name="richTextBox1" Text="{Binding SelectedArticle.ArticleBody, Mode=TwoWay}" />
30.05.2014
  • фантастика спасибо! Теперь все имеет смысл, просто выставьте свойство того типа, к которому вы переходите. Спасибо за всю твою помощь, Том 30.05.2014
  • Нет проблем @Hardgraf. Рад, что это помогает. Если вы используете привязки, то SelectedItem(s) будет иметь тип элемента коллекции. 30.05.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..