В моем приложении Silverlight у меня есть обработчик событий, который динамически создает новый экземпляр пользовательского элемента управления и добавляет его в свойство Content другого элемента управления. Это прекрасно работает без ошибок, пока я не назначу имя (x: Name = "") пользовательскому элементу управления (не в событии, а в XAML пользовательского элемента управления. Затем, когда я устанавливаю шаблон для свойства .Content из элемента управления я получаю исключение «System.ArgumentException не обрабатывается пользовательским кодом / значение не попадает в ожидаемый диапазон.» Исключение. Я понятия не имею, где ошибка или где искать ... она в значительной степени встроена в SL. Не могу понять, какое еще свойство мне нужно установить.
Вот код, который добавляет пользовательский элемент управления:
TilePane p = e.Element as TilePane; // this is the target
AppTileNormalViewControl template = new AppTileNormalViewControl(); // this is the user control
p.Content = template; // error happens here
Проблема в том, что пользовательский элемент управления имеет несколько открытых свойств, которые я собирался использовать для привязки данных к некоторым элементам управления в пользовательском элементе управления. Мне нужно имя, чтобы сделать синтаксис:
Text="{Binding ElementName=UserControlName, Path=PublicProperty}"
Без ElementName привязка не работает. Поэтому, если я укажу имя, будет работать привязка имени, но я не могу добавить элемент управления. Идеи?