С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Dernovyua
0 / 0 / 4
Регистрация: 15.03.2013
Сообщений: 92
1

Как получить ссылку на конкретный класс Коллекция<Интерфейс>

25.03.2015, 11:05. Просмотров 418. Ответов 3
Метки нет (Все метки)

C#
1
2
3
4
public override ObservableCollection<ISecurity> GetTableCurrentParam()
        {
            return new ObservableCollection<ISecurity>(DataProvider.CurrentParamModelTrConList);
        }
DataProvider.CurrentParamModelTrConList - возвращает конкретный класс наследуемый интерфейс ISecurity
при такой реализации мы получаем постоянно новый экземпляр, а не ссылку на DataProvider.CurrentParamModelTrConList
Не подскажите каким образом можно получить ссылку? Спасибо

Добавлено через 16 минут
Уточнение. Имеется несколько классов наследующих ISecurity, поэтому GetTableCurrentParam() и имеет тип возвращаемого параметра ObservableCollection<ISecurity>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2015, 11:05
Ответы с готовыми решениями:

Можно ли создать интерфейс, в котором один из методов будет возвращать класс, который реализует интерфейс
Можно ли создать интерфейс, в котором один из методов будет возвращать класс,...

Как получить интерфейс по его имени
Здравствуйте, до сей поры программировал только в Delphi, ну и давно...

Как получить ссылку на нажатую кнопку?
Здравствуйте. Сразу код: private void Form1_Load(object sender, EventArgs e)...

Как получить ссылку на выбранную строку не в Grid, а в связанной таблице?
У меня на форме есть DataGrid с которой связана некоторая таблица DataTable....

Передать ссылку в класс?
Имеется класс class Link { float defLen; //длина пружины в...

3
Casper-SC
Эксперт .NET
3638 / 1843 / 360
Регистрация: 27.03.2010
Сообщений: 5,169
Записей в блоге: 1
25.03.2015, 12:07 2
Так ты возвращаешь лишь новую обёртку каждый раз, а сами исходные данные всегда одни и те же возвращаются, хоть сколько раз вызывай GetTableCurrentParam

Добавлено через 30 секунд
Если, конечно, DataProvider.CurrentParamModelTrConList всегда возвращает одну и ту же коллекцию.

Добавлено через 1 минуту
Всё тут правильно написано. Если ты будешь один и тот же объект ObservableCollection<ISecurity> возвращать и биндить к ItemSource разных списочных элементов, то не будет это работать.
0
kenny69
burning1ife
1413 / 1235 / 292
Регистрация: 21.09.2008
Сообщений: 3,409
Записей в блоге: 9
25.03.2015, 12:31 3
C#
1
2
3
4
5
6
7
8
9
ObservableCollection<ISecurity> _coll;
public override ObservableCollection<ISecurity> GetTableCurrentParam()
        {
             if (_coll==null)
            {
                 _coll = new ObservableCollection<ISecurity>(DataProvider.CurrentParamModelTrConList);
            }
            return _coll;
        }
1
Dernovyua
0 / 0 / 4
Регистрация: 15.03.2013
Сообщений: 92
25.03.2015, 13:29  [ТС] 4
Попытаюсь объяснить что мне надо, может я неверно в самом начале делаю реализацию. Есть окно, куда будут выводиться данные DataProvider.CurrentParamModelTrConList привязкой к dataGrid. В зависимости от выбранного "подключения" будет создаваться свой CurrentParamModelTrConList унаследованный от ISecurity (все это вынесено в отдельную библиотеку). Данные поступают из источника и надо обновлять CurrentParamModelTrConList.

Если делать все в библиотеке, то обновлять CurrentParamModelTrConList не составляет труда, а т.к. привязка идет к datagrid, то получается ошибка: CollectionView не поддерживает изменения в своем SourceCollection из потока, отличного от потока Dispatcher.

Поэтому я пытаюсь получить коллекцию, в потоке приложения и уже в нем вызываю следующий код
C#
1
2
3
4
5
6
7
8
9
10
 var tmpSec = sec as CurrentParamModelTrCon;
var curParamTable = GetTableCurrentParam();
if (Dispatcher.CurrentDispatcher.CheckAccess())
   curParamTable.Add(tmpSec);
   else
   {
         var sec1 = tmpSec;
         Dispatcher.CurrentDispatcher.Invoke(new Action(() => curParamTable.Add(sec1)
         ), DispatcherPriority.Normal, null);
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2015, 13:29

Как получить данные из DataRow[] в свой класс
На данный момент делал так class КлассСборка { public...

Коллекция как свойство
Есть класс Car Мне нужно сделать свойство Colors, такое, чтобы пользователь мог...

Как правильно отправить формдату на сайт? Конкретный пример
Есть сайт xgame-online.com и мне нужно на него отправить: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru