В моем приложении WPF я хочу иметь некоторые пользовательские элементы управления XAML, которые расширяются от базового класса с параметром общего класса:
XAML:
<base:ModuleView
x:Class="View.ControllerTestView"
x:TypeArguments="local:ControllerTestModule"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="clr-namespace:View"
xmlns:local="clr-namespace:Implementations.Controller.Module">
Код и базовый класс
namespace View
{
/// <summary>
/// View Component of the ControllerTestModule
/// </summary>
public partial class ControllerTestView: ModuleView<ControllerTestModule>{ //... }
public abstract class ModuleView<C> : UserControl, IView<C> where C : AbstractController { //.. }
public class ControllerTestModule : AbstractController{ //... }
}
Без параметра класса это работало, но с параметром класса и добавлением тега x:TypeArgument
я получаю следующее сообщение об ошибке, отображаемое Visual Studio:
The name "ModuleView`1" does not exist in the namespace "clr-namespace:View".
x:TypeArguments="ControllerTestModule" is not valid. 'ControllerTestModule' is not a valid type name reference for the generic argument at position '1'. Line 2 Position 18.
The name "ControllerTestModule" does not exist in the namespace "clr-namespace:Implementations.Controller.Module". ControllerTestView.xaml