Может ли базовый класс WPF содержать элемент управления для производного класса? - PullRequest
0 голосов
/ 25 марта 2010

У меня есть несколько пользовательских элементов управления, которые имеют одни и те же элементы управления, выполняющие одну и ту же работу.
Можно ли извлечь эти элементы управления в базовый класс?
Когда я попробую его, я получаю сообщение об ошибке, что определение в сгенерированном файле .g.cs будет скрывать родительское определение. Что я хотел бы сделать:

public class ctlBase : UserControl
{
  internal CheckBox chkBox { get; set; }
}
In the .xaml of the derived class:  
<Grid>
  <CheckBox x:Name="chkBox" />
</Grid>
public class DerivedCtl : ctlBase
{  }

Спасибо за любые идеи ...

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Да. Ты можешь это сделать. См .: Как WPC UserControl может наследовать WPF UserControl?

1 голос
/ 25 марта 2010

Если я правильно интерпретирую ваш вопрос, вам нужен пользовательский интерфейс, который состоит из набора общих элементов управления и другого набора элементов управления, которые определяются другой логикой.

Вот один из способов сделать это.

Создание диалогового окна / формы / пользовательского элемента управления, который содержит «базовые» элементы управления

Добавить сетку, которая будет содержать «производные» элементы управления

Создайте один или несколько дополнительных пользовательских элементов управления, чтобы содержать «производные» элементы управления

Программно добавить логику, чтобы создать экземпляр соответствующего «производного» пользовательского элемента управления и добавить его в Grid. Это, конечно, произойдет во время выполнения.

Возможно, у гуру WPF будет более изощренный ответ ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...