VS2005 C# Currency Manager Проблема с не изменяющейся позицией

У нас есть настраиваемая коллекция объектов, которые мы привязываем к элементу управления списком. Когда элемент добавляется в список, он появляется в списке, однако, когда вы выбираете элемент, позиция валютного менеджера не переходит в позицию. Вместо этого позиция валютного менеджера остается на существующей позиции. Элемент списка выделяется, пока нажата мышь, однако см никогда не меняет положение.

Если я копирую один из объектов коллекции, список работает правильно.

Еще одно примечание: в коллекции также есть коллекции, не уверен, что это будет проблемой.

Настраиваемая коллекция настраиваемых классов реализует Ilist.

Murray Van Wieringen 10.10.2008 18:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
1 156
3

Ответы 3

Коллекции не имеют понятия «текущий элемент». Возможно, в вашей собственной коллекции есть, но ListBox этого не использует. У него есть собственный индекс «текущего элемента» в коллекции. Вам необходимо обрабатывать события SelectedIndexChanged, чтобы поддерживать их синхронизацию.

Возможно, вам потребуется опубликовать код; следующее (с двумя списками, связанными вместе только CM) показывает, что он работает нормально ... поэтому, чтобы найти ошибку, нам может потребоваться некоторый код.

using System;
using System.ComponentModel;
using System.Windows.Forms;
static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        BindingList<Foo> foos = new BindingList<Foo>();
        foos.Add(new Foo("abc"));
        foos.Add(new Foo("def"));

        ListBox lb1 = new ListBox(), lb2 = new ListBox();
        lb1.DataSource = lb2.DataSource = foos;
        lb1.DisplayMember = lb2.DisplayMember = "Bar";
        lb1.Dock = DockStyle.Left;
        lb2.Dock = DockStyle.Right;

        Button b = new Button();
        b.Text = "Add";
        b.Dock = DockStyle.Top;
        b.Click += delegate
        {
            foos.Add(new Foo("new item"));
        };
        Form form = new Form();
        form.Controls.Add(lb1);
        form.Controls.Add(lb2);
        form.Controls.Add(b);
        Application.Run(form);
    }


}
class Foo
{
    public Foo(string bar) {this.Bar = bar;}
    private string bar;
    public string Bar {
        get {return bar;}
        set {bar = value;}
    }
}

Я нашел проблему, потратив слишком много времени ....

Эта проблема была связана с одним из свойств элемента (настраиваемого класса) в коллекции, который был привязан к элементу управления выбора даты. Конструктор класса никогда не устанавливает значение по умолчанию.

Это вызвало проблему с диспетчером валют, не позволяющим изменить позицию, поскольку конкретное свойство (привязанное к средству выбора даты) было недействительным.

Мне плохо! Я лучше знаю!

Другие вопросы по теме