2008-11-15 4 views
0

Начать новую Silverlight приложение ... и в коде позади (в "Loaded" событие), поместите этот код:Ошибка Silverlight DataBinding - работает в WPF. Хотя!

// This will *NOT* cause an error. 
this.LayoutRoot.DataContext = new string[5]; 

Но ...

// This *WILL* cause an error! 
this.LayoutRoot.DataContext = this; 

это ошибка, «Значение не входит в ожидаемый диапазон». BTW, этот код работает на 100% в обычном WPF (Windows development), и не должно быть причин, почему он не будет работать в WPF/E :)

Любые мысли?

ответ

4

В настоящее время вы не можете использовать визуальные элементы в качестве источника данных для привязки данных в Silverlight 2. Я думаю, что это будет добавлено для Silverlight v.Next.

+0

Должен был знать, что «счет» будет иметь ответ :) Итак, я предполагаю, что мне нужно сделать какой-то бессмысленный промежуточный объект для хранения моих свойств а затем использовать это как DataContext. – 2008-11-16 14:41:36

0

Вы можете использовать визуальные элементы в качестве источника данных, если вы создаете привязку непосредственно в коде, но попытка назначить визуальный элемент DataContext вызовет ArgumentException. Это не имеет особого смысла, но silverlight находится только на версии 2.