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

ListBox в ошибке привязки RowDetail

У меня есть приложение WPF. Он содержит объект OrderBlock, который содержит другие объекты, пожалуйста, ознакомьтесь с кратким описанием класса.

 public class OrderBlocks
 {
     private List<Order> _orders;
    [XmlElement("tF_Transactions")]
    public List<Order> Orders { get { return _orders; } set { _orders = value; OnPropertyChanged("Orders"); } }
 }

 public class Order : INotifyPropertyChanged
 {
        [XmlIgnore]
        public List<Duplications> DuplicateHolder { get; set; }  
 }

 public class Duplications
    {
        public string ID { get; set; }
        public string Name { get; set; }

        public Duplications(string newID, string newName)
        {
            ID = newID;
            Name = newName;

        }
    }

У меня есть сетка данных, привязанная к моему объекту Orders типа List Orders. В моей сетке данных есть сведения о строке, поэтому, когда пользователь щелкает строку, отображаются дополнительные сведения. Я добавил список к этой детали строки. Я хочу, чтобы эта деталь строки отображала список, в котором отображается мой объект DuplicateHolder типа List Duplications.

На данный момент список пуст. Пожалуйста, смотрите мою попытку кода XAML ниже. Любая помощь будет здоровой, как всегда.

<ListBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Name="lbIdentifier" SelectionMode="Single" DataContext="{Binding OrderBlock}" HorizontalContentAlignment="Stretch">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid Margin="0,2">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Grid.Column="0" Text="{Binding Path=DuplicateHolder.ID}" FontSize="10" HorizontalAlignment="Left" Margin="5,0,0,0"/>
                                    <TextBlock Grid.Column="1" Text="{Binding Path=DuplicateHolder.Name}" FontSize="10" HorizontalAlignment="Left" Margin="5,0,0,0"/>
                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>                                                                                        
                    </ListBox>        
23.09.2013

Ответы:


1

Попробуй это

<Listbox ItemSource = {Binding DuplicateHolder}/>

и

  <TextBlock Grid.Column="0" Text="{Binding Path=ID}".../>
23.09.2013
  • Ну, список все еще пуст, однако, если я нажму на список, он позволит мне выбрать две «строки», которые представляют собой число, которое я ожидаю. Шрифт черный, поэтому не уверен, что это просто случай, когда значения скрыты? 23.09.2013
  • Его сейчас показывают. Я только что изменил Text={Binding Path=DuplicateHolder.ID} на Text={Binding Path=ID}, и теперь он работает. Большое спасибо 23.09.2013

  • 2

    Похоже, вы неправильно установили привязки, потому что контекст списка должен быть списком дубликатов, а ItemTemplate должен быть для одного экземпляра дубликата из списка дубликатов. Итак, если глобальный контекст данных является экземпляром OrderBlocks, список будет привязан к DuplicateHolder заказа:

    <ListBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Name="lbIdentifier" SelectionMode="Single" DataContext="{Binding Path=DuplicateHolder}" HorizontalContentAlignment="Stretch">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid Margin="0,2">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Grid.Column="0" Text="{Binding Path=ID}" FontSize="10" HorizontalAlignment="Left" Margin="5,0,0,0"/>
                                    <TextBlock Grid.Column="1" Text="{Binding Path=Name}" FontSize="10" HorizontalAlignment="Left" Margin="5,0,0,0"/>
                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>                                                                                        
                    </ListBox>     
    
    23.09.2013
    Новые материалы

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

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

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

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

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

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

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