Как я могу использовать XAML 2009 в качестве проектных данных в Visual Studio? - PullRequest
3 голосов
/ 18 апреля 2011

У меня есть файл xaml, который я хочу использовать как DesignData (с создаваемыми типами во время разработки). Я также хочу использовать в нем функции XAML 2009, однако Visual Studio, похоже, не принимает его, жалуясь на то, что атрибуты, которые я хочу использовать, не существуют в целевом пространстве имен.

Вот как выглядит мой xaml-файл:

<my:ViewModel 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
    xmlns:my="clr-namespace:MyCompany"
>
    <my:ViewModel.ViewCollection>
        <!-- That part does not work, because it tells me that FactoryMethod and Arguments could not be found in the namespace for prefix 'x'. -->
        <my:BusinessObjectView x:FactoryMethod="my:BusinessObjectView.Convert">
            <x:Arguments>
                <my:BusinessObject />
            </x:Arguments>
        </my:BusinessObjectView>
    </my:ViewModel.ViewCollection>
    <my:ViewModel.BoCollection>
        <!-- Even though the x:TypeArguments syntax for defining objects only appears in XAML 2009, that part works fine - probably because the TypeArguments attribute already existed in that namespace. -->
        <scg:List x:TypeArguments="my:BusinessObject">
            <my:BusinessObject />
        </scg:List>
    </vm:ViewModel.BoCollection>
</my:ViewModel>

А вот фрагмент в файле проекта XML, описывающий действие сборки:

<DesignDataWithDesignTimeCreatableTypes Include="Path/To/File.xaml">
  <SubType>Designer</SubType>
  <Generator>MSBuild:Compile</Generator>
</DesignDataWithDesignTimeCreatableTypes>

Итак, в чем проблема? Это префикс пространства имен? (В каком случае, какой я должен использовать для XAML 2009?) Это действие по сборке? У меня весь подход некорректен?

1 Ответ

1 голос
/ 10 ноября 2012

«Свободный файл XAML» - это концепция, которая ортогональна концепции XAML 2009. Свободный файл XAML - это файл только для XAML (без кода), который загружается во время выполнения.http://wpf.2000things.com/2010/10/20/100-loose-xaml-files/ XAML 2009 - это версия языка XAML и набор соответствующих схем.

Чтобы сделать файл .xaml «свободным», вам просто нужно остановить его компиляцию (в свойствах файла).Чтобы загрузить свободный .xaml файл, вам нужно использовать XamlReader.Load Метод http://msdn.microsoft.com/en-us/library/system.windows.markup.xamlreader.load.aspx http://www.c -sharpcorner.com / uploadfile / 37db1d / понимание-uncompiled-xaml-to-design-dynamic-ui-in-wpf /Странно кажется, что файлы XAML2009 по-прежнему используют схемы 2006 года.

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