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


Автор: DenWPF 25.3.2011, 16:55
У меня есть List<MyClass> 
и есть форма MyFrom а в ней TreeView, который основывается на  List<MyClass> 

сейчас запускаю так: MyForm m = new MyFotm(listMyClass ); m.show();

И мне нужно что бы теперь если меняется listMyClass то в форме это тоже изминялось..
я думал повесить тригер на List<MyClass>, но думаю есть более красивые варианты.

Автор: jonie 25.3.2011, 20:30
DenWPF, ObservableCollection<T> , если вы в SL или WPF . Если же winforms тогда BindingList<T> используйте.

Автор: DenWPF 26.3.2011, 00:33
не много не получается

// задаю в статическое поле DataSource
ViewRoutersConnections.s_control.DataSource = m_arPlatforms;

Код

public static ListBox s_control = new ListBox();
        TreeView tree;
        BindingList<Platform> arPlatforms;
        public ViewRoutersConnections()
        {
            

            InitializeComponent();
            arPlatforms = (BindingList<Platform>)s_control.DataSource; // тут его забираю...хоть наверное это происходит один раз....
            tree = new TreeView();


всё работает, но не обновляется.

если бы у treeview было DataSource было бы проще.

Автор: jonie 26.3.2011, 09:45
сдается мне вы меняете не список, а элементы списка. не так ли?

Автор: DenWPF 26.3.2011, 10:32
пока что я меняю имено в элементах значения, в список новые не добавляю

Автор: jonie 26.3.2011, 17:58
DenWPF, так так и ПИШИ, а -то :
Цитата

мне нужно что бы теперь если меняется listMyClass то в форме это тоже изминялось..


для того чтобы реагировала на изменения непосредственно в элементах, эти элементы должны реализовать INotifyPropertyChanged интерфейс, погугли.

Автор: DenWPF 26.3.2011, 19:39
ну это потом тоже мне понадобиться...

INotifyPropertyChanged- всё так же как и WPF ?

Автор: jonie 26.3.2011, 21:00
DenWPF, да, для WPF это тоже пойдет. Можно, конечно, делать на DependencyProperty-ях, но смысла в данном случае нет.

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