Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Редактирование объекта в форме, с последующим обновлением ListBox-а 
V
    Опции темы
V0fka
Дата 1.10.2013, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Привет!

Есть 2 формы. Одна форма содержит ListВox, прибинденный к ObservableCollection. По двойному клику открывается другая форма, в которую передается объект, который можно там редактировать:

Код

TaskWindow tw = new TaskWindow((Task)listBox_Tasks.SelectedItem);
tw.ShowDialog();


Вот код окна TaskWindow (текущий код - это один из вариантов экспериментов):

Код

    public partial class TaskWindow : Window
    {
        public TaskWindow()
        {
            InitializeComponent();
        }

        public Task mTask { get; set; }
        private Task currentTask;

        public TaskWindow(Task task)
            : this()
        {
            this.currentTask = task;
            this.mTask = task.Clone();
        }

        private void btn_Ok_Click(object sender, RoutedEventArgs e)
        {
            currentTask.load(mTask);
            Close();
        }

        private void btn_Close_Click(object sender, RoutedEventArgs e)
        {
            Close();
        }
    }


Что я хочу сделать. Я хочу, чтобы по нажатию на btn_Ok объект сохранялся и обновлялся в listBox_Tasks, а по нажатию на btn_Close форма просто закрывалась и объект не сохранялся. Если сделать так, как я написал выше - то поведение вроде то, но в listBox_Tasks объект не обновляется. Если я его открываю снова - то в форме TaskWindow он в нужном состоянии, а вот в листбоксе не обновлен.

Вопрос: как это все сделать? И я, признаться, не уверен, что тот подход, который я использую для этой задачи - нормальный. Не, может оно конечно так и делается, но просто в силу своей неопытности вот прошу совета у более опытных коллег. smile
PM MAIL   Вверх
likegift
Дата 4.10.2013, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: 2
Всего: 3



Я думаю, что просто в классе Task не хватает реализации интерфейса INotifyPropertyChanged с вытекающими из этого последствиями в виде необновляющихся свойств, которые вы изменяете.
PM MAIL   Вверх
V0fka
Дата 4.10.2013, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



likegift, большое спасибо! Реализовал интерфейс INotifyPropertyChanged и получил то, что хотел.
PM MAIL   Вверх
likegift
Дата 7.10.2013, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: 2
Всего: 3



Цитата(V0fka @ 4.10.2013,  18:11)
likegift, большое спасибо! Реализовал интерфейс INotifyPropertyChanged и получил то, что хотел.

кушайте на здоровье! smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.4503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.