Как вызвать "свободное Xaml" -определенное действие из другого "свободного Xaml" -определенного действия? - PullRequest
0 голосов
/ 17 января 2012

У меня есть два «свободных» XAML-файла, каждый из которых декларативно определяет составную активность, которая состоит из некоторых пользовательских (скомпилированных) операций кода.

Теперь я хотел бы, чтобы активность, определенная в 1-м "свободном" Xaml, содержала активность, определенную во 2-м "свободном" Xaml, на своих этапах.

Тем не менее, я понятия не имею, как «склеить» оба действия вместе, так что 1-е действие будет знать, как правильно загрузить действие из 2-го Xaml.

Так при звонке:

XamlXmlReader xr = new XamlXmlReader(@"FirstLooseActivity.xaml");
ActivityBuilder ab = (ActivityBuilder)XamlServices.Load(ActivityXamlServices.CreateBuilderReader(xr));

Я получаю исключение XamlObjectWriterException (после загрузки всех соответствующих сборок в мое хост-приложение):

Cannot create unknown type '{clr-namespace:SecondLooseActivity}MyActivity

Поскольку в MS нет поддержки Xlink, есть ли способ сделать это вообще?

Если нет, каковы мои альтернативы?

1 Ответ

0 голосов
/ 14 июня 2012

У меня была точно такая же проблема, и я нашел решение.

Вот как выглядел мой XAML:

<Activity ... xmlns:mylib="clr-namespace:MyProject.ActivityLibrary">
    <mylib:MyCustomActivity ... />
</Activity>

Уловка, которая сработала для меня, заключалась в том, чтобы указать сборку, содержащую мои пользовательские действия, в пространстве имен.

Изменение пространства имен на это заставило его работать:

xmlns:mylib="clr-namespace:MyProject.ActivityLibrary;assembly=MyProject.ActivityLibrary"
...