Из вашего вопроса не понятно, зачем передавать параметр конструктору пользовательского элемента управления.
Это может быть связано с тем, что вам необходим пользовательский элемент управления для использования параметра-нарушителя до того, как любые связанные значения будут переданы из пользовательского элемента управления в родительский элемент с помощью механизмов свойств зависимостей - в первую очередь связанных свойств, которые непосредственно или косвенно будут использовать параметр-нарушитель-конструктор .
Это может быть потому, что инициализация с помощью параметризованного конструктора является единственным способом для вас по тем или иным причинам.
Я не знаю ни одного решения для случая 2. Но когда возникает этот вопрос, случай 1 является обычным требованием. В этом случае мое решение состоит в том, чтобы создать обычное свойство dot Net. Это будет решено до любого свойства зависимости.
Но может быть проблема с обычным свойством dot Net. Как вы привязываетесь к ссылке? Элемент управления в визуальном дереве, например, Для этого есть решение, но оно доступно только в более новой версии XAML. Вы можете написать
<MyCustomControl MyParameter="{x:Reference Name=Blah}"/>
вместо
<MyCustomControl MyNonParameter="{Binding ElementName=Blah}"/>
И вам не нужно создавать DP для этого. В вашем контроле Custrom вы можете просто написать
class MyCustomControl {
// The parameter my constructor sadly can not have
public MyParameterType MyParameter { get; set; }