WPF Добавление элемента управления в определенную область UserControl динамически - PullRequest
0 голосов
/ 22 ноября 2018

Добрый день,

Похоже, у меня возникла простая проблема с WPF.

После нескольких хороших часов поиска в Google я не смог найти ничего похожего на то, что я ищуfor.

Проще говоря, я ищу способ определить область в моем пользовательском элементе управления UserControl следующим образом:

<UserControl>
    <TemplateArea x:Name="FormControls">

    </TemplateArea>
</UserControl>

Затем сделайте это в Window, Panel и т. д., чтобыиспользует мой пользовательский элемент управления:

<TheUserControl>
    <TemplateArea x:Name="FormControls">
        <TextBox/>
    </TemplateArea>
</TheUserControl>

.. и в результате TextBox будет непосредственно вставлен в мой пользовательский элемент управления.

1 Ответ

0 голосов
/ 22 ноября 2018

Одним из решений было бы создание свойства зависимостей, которое содержит массив элементов управления, а внутри элемента управления вы связываете его с ItemsControl:

child.xaml

<UserControl x:Name="RootControl">
  <...>   <!-- your other UI -->
    <ItemsControl ItemSource="{Binding Items, ElementName=RootControl}" /> 
    <!-- style the items and/or panel as you wish -->
  </...>
</UserControl>

child.cs

public static readonly DependencyProperty ItemsProperty = DependencyProperty.Register(
    "Items", typeof(Observable<UIElement>), typeof(Child),
    new PropertyMetadata(new Observable<UIElement>()));

host.xaml

<Page>
  <...>
    <my:Child>
      <my:Child.Items>
        <TextBox/>
        <CheckBox/>
      </my:Child.Items>
    </my:Child>
  </...>
</Page>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...