2010-05-13 2 views
0

Я читал эту статью - http://msdn.microsoft.com/en-us/magazine/dd419663.aspxSilverlight MVVM преобразование WPF

И я наткнулся на этот кусок кода в приложении WPF Demo, который пришел со статьей.

Этот шаблон применяет CustomerView к экземпляру класса CustomerViewModel, показанному в главном окне.

<DataTemplate DataType="{x:Type vm:CustomerViewModel}"> 
    <vw:CustomerView /> 
</DataTemplate> 

Я заменил угловые скобки для квадратных скобок - не знаю, как их разместить.

Код в MainWindowResourses.xaml и код начинается в строке 19.

Каждый знает, как я могу сделать это в Silverlight ?? У нас нет DataType, и мне нужно сообщить, что этот вид связан с этим ViewModel, поэтому я могу создать элемент управления вкладкой с другим представлением, таким как демонстрационное приложение.

Приветствия,

EC

+0

Я только что отредактировал ваш кодовый блок для вас - можете ли вы проверить, что вы намеревались? Приветствия. – slugster

+0

Да, это дело :) Я думаю, что выяснил проблему. Я использую инструментарий MVVM Light - но я не использую локаторную часть приложения - я думаю, что локатор делает то, что мне нужно, - нужно прочитать на нем :) Спасибо – Eoinii

+0

Я отметил тему mvvm- легкий. Лоран Бугнион, человек, стоящий за MVVM Light Toolkit, который часто пробирается сюда, мог бы лучше разобраться в этом вопросе. –

ответ

0

Это пример WPF неявной стиль, где стиль применяется ко всем элементам управления в проекте. Это not supported in Silverlight.

Чтобы обойти это, вам нужно вместо этого разместить элементы управления представлением в разметке и установить их DataContext в режим просмотра.

<Window.Resources> 
    <vm:CustomerViewModel x:Key="theViewModel"> 
<Window.Resources> 

<vw:CustomerView DataContext={StaticResource theViewModel}/> 

theViewModel не должен поступать из раздела ресурсов, он может быть свойством в хостинге управления XAML/странице.

+0

Хорошо, да, но я хочу, чтобы иметь возможность создавать виды динамически - как в статье, опубликованной выше. У меня будет несколько просмотров, и они будут добавлены в TabControl - так как я могу добавить в свою коллекцию «Workspaces» и правильно ли отобразить представление? BTW Я использую инструментарий MVVM Light ... – Eoinii

+0

Не думайте, что вы можете это сделать из коробки, не требуя чего-то вроде Prism - http://compositewpf.codeplex.com/ В любом случае стоит изучить. –

+0

Silverlight 4 имеет неявный стиль - будет ли он работать? – Eoinii

Смежные вопросы