Ошибка привязки данных Silverlight - Работает в WPF, хотя!
-
08-07-2019 - |
Вопрос
Запустите новое приложение 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.