Я создаю iGoogle-подобную "панель инструментов" для нашего приложения с Silverlight 4.
Каждая пользовательская панель инструментов (которая привязывается и их позиции) будет храниться в базе данных. Каждая оснастка является пользовательским элементом управления, например ... AwesomeSnapin.xaml.
На странице панели инструментов в Silverlight я получаю панель пользователя, которая представляет собой набор объектов оснастки, которые содержат информацию о оснастке. Я могу сохранить имя страницы или класса или все, что нужно.
У меня есть следующий код, который перебирает коллекцию оснасток, чтобы добавить их на страницу панели инструментов. В тестировании я только что жестко запрограммировал один элемент оснастки. Вот код прототипа:
foreach (var UserSnapin in op.Entities)
{
UserControl uc = new AmsiSL.eFinancials.BudgetCheck();
Canvas.SetLeft(uc, UserSnapin.PositionLeft);
Canvas.SetTop(uc, UserSnapin.PositionTop);
Layout.Children.Add(uc);
MessageBox.Show(String.Format("Added {0}",UserSnapin.Snapin.Name));
}
Вышеописанное работает нормально ... но, конечно, добавляет оснастку BudgetCheck для каждого элемента, определенного для панели пользователя. Конечно, окно сообщения только для целей отладки.
Как мне изменить строку 3 этого для загрузки класса пользовательского элемента управления (используя имя класса или путь xaml, в зависимости от того, что лучше) на основе данных в коллекции.