Позвольте WPF UserControl удалить себя и Data-Object, который связан с ним? - PullRequest
0 голосов
/ 17 июня 2009

Я поместил в своем MainWindow StackPanel, которая динамически вызывается во время выполнения новых UserControls (UserControl - это строка TextBoxes и кнопка с именем «Delete»). Вот как я создаю UserControls:

PersonObject p = new PersonObject;
List.Add(p);

UserControlLine usrCtrlLine = new UserControlLine();
usrCtrlLine.DataContext = p;

StackPanel.Children.Add(usrCtrlLine);

Теперь UserControl содержит текстовые поля вроде этого:
TextBox TextWrapping = "Wrap" Grid.Column = "1" Text = "{Путь привязки = Имя, Режим = TwoWay}"

Мои вопросы, как я могу разрешить UserControl
- Удалить себя из StackPanel («удалить»)
Удалить PersonObject р, который связан с ним?

Большое спасибо!

1 Ответ

0 голосов
/ 17 июня 2009

Я не уверен, что понимаю, что вы пытаетесь сделать здесь ... Вы хотите отобразить список людей в StackPanel? Вы должны использовать ItemsControl, определить его ItemsPanel как StackPanel и его ItemTemplate как UserControlLine:

<ItemsControl ItemsSource="{Binding ListOfPersons}">
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <StackPanel IsItemsHost="True"/>
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <my:UserControlLine/>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

Чтобы удалить элемент, вы просто удаляете его из коллекции лиц, и связанная с ним UserControlLine также будет удалена из ItemsControl (коллекция должна быть ObservableCollection)

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