Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Почему не обновляется control?


Автор: DenWPF 22.4.2011, 20:28
Вот я по другому делаю, но UI не обновляется.

Решил делать через использование BindingList.

создаю одно событие на обновление коллекции
    
Код

List.ListChanged += new ListChangedEventHandler(myTreeView.WorkspaceListChanged);


обработка события

Код

public void WorkspaceListChanged(object sender, ListChangedEventArgs e)
{
        tree.Nodes.Clear();
        // и создаю заново всё дерево.
}



Констрктор моего MyTreeView, тут привязка коллекции.
Код

private BindingList<MyDataClass> m_list;
public MyTreeView(BindingList<MyDataClass> list)
{
        m_list = list;
}


но проблема, не обновляется UI хотя в дебаге видно что данные добавляются.

Автор: -Mikle- 26.4.2011, 09:30
Мало информации.

Автор: DenWPF 26.4.2011, 09:54
Я обновил первое сообщение.

Автор: v00d00 26.4.2011, 12:49
INotifyPropertyChanged.

Покажи разметку.

Автор: DenWPF 26.4.2011, 14:09
Всё хорошо, просто я где писал

Цитата

 // и создаю заново всё дерево.


то просто там не верно работал.


но по сути, я же не использую Binding.

INotifyPropertyChanged сделан примерно так
Код


class MyClass : INotifyPropertyChanged

public List<MyType> MyTypeContols
        {
            get { return m_myTypeContol; }
            set
            {
                m_myTypeContol = value;
                OnPropertyChanged(this, "MyTypeContols");
            }
        }

public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(object sender, string propertyName)
        {
            if (this.PropertyChanged != null)
            {
                PropertyChanged(sender, new PropertyChangedEventArgs(propertyName));
            }
        }



как всё таки прибиндить??

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)