Невозможно создать унаследованный пользовательский контроль в WPF, базовый элемент управления «не существует» в локальном пространстве имен - PullRequest
0 голосов
/ 26 апреля 2019

Я попытался создать пользовательский элемент управления UserControl "UserControl1" в WPF, который наследуется от базового класса. Среди прочего я получаю эту ошибку в XAML: Ошибка XDG0008 Имя «ControlBase» не существует в пространстве имен «clr-namespace: Temp». Я также получаю сообщение об ошибке в DesignHeight & Width

Класс ControlBase был доступен при автозаполнении VS.

Класс ControlBase определен в пространстве имен Temp.

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

UserControl1.xaml:

<local:ControlBase x:Class="Temp.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:Temp"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
    <Grid>

    </Grid>
</local:ControlBase>

UserControl1.xaml.cs:

namespace Temp
{
    /// <summary>
    /// Interaction logic for UserControl1.xaml
    /// </summary>
    public partial class UserControl1 : ControlBase
    {
        public UserControl1()
        {
            InitializeComponent();
        }
    }
}

ControlBase.cs:

using System.Windows.Controls;

namespace Temp
{
    public class ControlBase : UserControl
    {
        public ControlBase() { }
    }
}

Я ожидал, что UserControl1 будет наследоваться от ControlBase без ошибок компилятора.

1 Ответ

0 голосов
/ 26 апреля 2019

Я не знаю, что я сделал, но он исправился.

...