Надеюсь, кто-то сильный в WPF знает, что происходит ... Сценарий, который я выбрал ниже, также применим и к другим, таким как текстовое поле, кнопки команд и т. Д. *
Я играю с созданием пользовательских элементов управления ... Пример: работа с простым Combobox. В одной библиотеке классов проекта LibA я создал несколько примеров, полученных из ... ex: TextBox, ComboBox, Window и т. Д. Вторая библиотека LibB Я создаю другой класс, полученный из ex: Combobox в LibA ... В противном случае нет проблема .... сделал аналогичную вещь в C # WinForms без проблем.
Теперь проблема в том, что я перетаскиваю элемент управления (из LibB) в первое «окно» (нативное, чтобы не возникало проблем с деривацией) приложения, сохраняю и запускаю. Производная библиотека даже не попала в свой конструктор, который я просто поместил простой командой, просто проверив, правильно ли она создавалась, работает ли она или нет, но это не так ... В XAML формы она правильно ссылается на оба проекта пространства имен, поэтому Я знаю, что это кажется правильным.
Итак, я затем создал производный комбинированный список в том же оригинальном LibA, поместил его в форму, и ИТ-специалисты должным образом вошли в конструктор.
Вот фрагмент того, что у меня происходит.
namespace LibA
{
public class MyCombo1 : ComboBox
{
public MyCombo1()
{ ToolTip = "this is my base declaration"; }
}
public class MyCombo1b : MyCombo1
{
public MyCombo1b() : base()
{ ToolTip = "this constructor IS reached"; }
}
}
В отдельном проекте (библиотеке),
using FirstLibraryThatHas_MyCombo1
namespace LibB
{
public class OtherLibCombobox : MyCombo1
{
public OtherLibCombobox() : base()
{ ToolTip = "this version is NOT being recognized in the window"; }
}
}
Итак, ни один из них не разработан визуально, все они только в коде ... Кроме того, я тоже сделал это с элементом управления TextBox, те же результаты ... Он не останавливается в отладчике ... . Есть идеи?
Несмотря на то, что я изменил фактические имена из примера, вот новое окно, одно с оригинальным объявлением класса И одно с ПРОИЗВОДНОЙ версией. Вот полное окно теста XAML
<Window x:Class="MyProject.TestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TestWindow" Height="300" Width="300"
xmlns:my="clr-namespace:WPFGUI;assembly=WPFGUI"
xmlns:my1="clr-namespace:DerivedControls;assembly=DerivedControls">
<Grid>
<my:MyComboBoxClass
Name="MyComboBoxInWindow"
HorizontalAlignment="Left"
Height="23"
Width="120" />
<my1:cboDerivedComboClass
Name="cboDerivedComboInWindow"
Height="23"
HorizontalAlignment="Left"
Width="120" />
</Grid>
</Window>