У меня есть элемент управления Silverlight с методом DoSomething()
, украшенным атрибутом <ScriptableMember()>
. Затем я вызываю этот метод успешно из JavaScript и подтверждается небольшим окном сообщения, которое появляется со стороны SL, на котором написано «Метод вызван!».
Точка - это все, что работает. У меня проблема в том, что до до вызова этого метода я создаю ObservableCollection в элементе управления Silverlight, содержащем 1..n FileInfo
объекты. Это тоже хорошо работает и накапливается, когда я добавляю в него файлы. Каждый раз, когда я добавляю файл, окно сообщения сообщает мне счетчик из Silverlight (то есть "Count = 2").
Теперь проблема: когда я вызываю метод DoSomething()
из JS и получаю доступ к этой ObservableCollection, count = 0! Чтобы увидеть, что происходит, я поместил сообщение в конструктор элемента управления Silverlight, чтобы посмотреть, будет ли оно введено при вызове из JS, и действительно делает и, по-видимому, воссоздает элемент управления.
Если это так, то в некотором смысле имеет смысл, что моя коллекция ObservableCollection имеет счетчик = 0, поскольку это не тот экземпляр элемента управления, в котором я собрал коллекцию FileInfo.
Так как же в мире сохранить коллекцию и зачем просто вызывать метод, предоставляемый JS из Silverlight, воссоздавать элемент управления и не разрешать мне получать доступ к его заданному состоянию? Я не хочу нового контроля, мне нужно манипулировать им как есть. Или я сошел с базы и делаю что-то еще не так, чтобы вызвать такое поведение?
Мысли? Спасибо!