Как получить экземпляр класса, зная его (строковое) имя во время выполнения? - PullRequest
1 голос
/ 03 июня 2011

все.Я работаю с WP7.У меня есть ListBox.

Элементы в этом ListBox должны выглядеть очень по-разному.Каждый элемент особенный.

Что я и сделал.Я создал простой dataTemplate для ListBoxItem.Существует только ContentPresenter и ничего более.

И Содержимое Свойство ContentPresenter является привязкой к DataContext.Content

Также я создал несколько пользовательских элементов управления, представляющихспециальный контент для каждого элемента.

specialObject one = new specialObject();
one.textString = "one"; //data of object
oneButtonPanel b1 = new oneButtonPanel(); //look of object

specialObject two = new specialObject();
two.textString = "two"; //data of object
two_butonsPanel b2 = new two_butonsPanel(); //look of object

one.Content = b1; //set up Content property
b1.DataContext = one;
two.Content = b2;
b2.DataContext = two; //set up Content property        

ObservableCollection<specialObject> colItems = new ObservableCollection<specialObject>() { one, two };
myListBox.ItemsSource = colItems;

И все работает отлично.Но я не знаю, какой UserControl мне нужно создать на самом деле.

two_butons b2 = new two_butons(); // Any other class can be here. I know only its string name - "two_butons"

Как получить экземпляр класса, зная только его имя?

Или - я могу получить userControlэкземпляр каким-то другим способом?

Большое спасибо.

1 Ответ

2 голосов
/ 03 июня 2011

Вы можете вызвать assembly.GetType(someString), где assembly - это экземпляр Assembly, который содержит тип.(например, typeof(YourOtherType).Assembly)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...