У меня есть файл 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?)
Это действие по сборке?
У меня весь подход некорректен?