Запустите новое приложение Silverlight ... и в коде позади (в событии «Loaded») поместите этот код:
// This will *NOT* cause an error.
this.LayoutRoot.DataContext = new string[5];
Но...
// This *WILL* cause an error!
this.LayoutRoot.DataContext = this;
Возникает ошибка: «Значение не попадает в ожидаемый диапазон». Кстати, этот код работает на 100% в обычном WPF (разработка для Windows), и не должно быть никаких причин, по которым он не будет работать в WPF / E :)
Какие-нибудь мысли?





В настоящее время вы не можете использовать визуальные элементы в качестве источника данных для привязки данных в Silverlight 2. Я думаю, что это планируется добавить в Silverlight v.Next.
Вы можете использовать визуальные элементы в качестве источника данных, если вы создаете привязку непосредственно в коде, но попытка назначить визуальный элемент для DataContext вызовет исключение ArgumentException. В этом нет особого смысла, но Silverlight есть только в версии 2.
Я должен был знать, что у старого Билла есть ответ :) Итак, я предполагаю, что мне придется создать какой-то бессмысленный промежуточный объект для хранения моих свойств, а затем использовать его как DataContext.