Я исследовал это довольно тщательно и нашел this, this и this. Все страницы справки, которые я нашел, говорят почти то же самое. Это не очень сложно, поэтому я уверен, что сделал все правильно, но файлы за кулисами все запутались или что-то в этом роде. Появляется любая из следующих трех ошибок, и только ошибки 1 и 2 не позволяют ей работать.Как создать пользовательские классы XAML и CS с наследованием?
Ошибка 1: Если XAML файлы открыты в редакторе, когда я запускаю его, то ошибка только на этот файл: Название «Вариант» не существует в пространстве имен «CLR-имена: Addin»
ошибка 2: Если XAML-файлы не открываются в редакторе, когда я запускаю его, то ошибка: имя типа «Вариант» не существует в типе «Addin.Addin». ... во всех файлах g.cs.
Ошибка 3: Точно так же, как 1, но на другом объекте. Когда я запускаю его, он разрешает, не вызывает ошибок и работает точно так, как предполагается.
Как будто VS убежден, что класс не существует, но он действительно заботится только о наследовании.
Достаточно сказать, что я смущен, и любое понимание относительно того, что может быть неправильным, будет с благодарностью оценено. Кроме того, я использую VS 2012 Professional, что некоторые из моих коллег, кажется, думают, что виновник, по крайней мере ошибок 3.
EAC1O1.xaml.cs
namespace Addin
{
public partial class EAC1O1 : Option
{
public EAC1O1()
{
InitializeComponent();
}
}
}
Option.cs
namespace Addin
{
public abstract class Option : UserControl
{
EAC1O1.xaml
<local:Option x:Class="Addin.EAC1O1"
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:Addin"
mc:Ignorable="d" >
<DockPanel>
</DockPanel>
</local:Option>
EAC1O1.g.cs
namespace Addin{
/// <summary>
/// EAC1O1
/// </summary>
public partial class EAC1O1 : Addin.Option, System.Windows.Markup.IComponentConnector {
OMG Что вы пытаетесь сделать? О.O –
.cs и .xaml, которые унаследованы от абстрактного класса Option (который имеет много свойств и методов, которые применяются к тем классам, которые их реализуют), но сами по себе НЕОБХОДИМО быть в разных файлах, поскольку они очень разные и сложные GUI, с опцией, унаследованной от UserControl. Просто на самом деле. :) – unwrittenrainbow
Чувак, вы ставите логику и функциональность в представлении, где она не принадлежит. Пожалуйста, покажите, что вы пытаетесь достичь здесь, и я могу сказать вам правильный способ сделать это в WPF. –