Доступ к UIElement.Properties в списке <UIElement> - PullRequest
0 голосов
/ 04 апреля 2011

Я создаю несколько Canvas во время выполнения, и каждый Canvas имеет TextBox в качестве дочерних элементов.Эти Canvas являются детьми WrapPanel.Мой код выглядит следующим образом:

List<Canvas> cvList = new List<Canvas>();
WrapPanel wp = new WrapPanel();

// function (e.g. a Click event) to add a Canvas with a TextBox
Canvas cv = new Canvas();
TextBox tb = new TextBox();
cv.Children.Add(tb);
cvList.Add(cv);
wp.Children.Add(cv);

Если после обработки функции 10 раз и создания 10 Canvas, мне нужно изменить текст одного конкретного элемента UIE (например, 5-й TextBox).Как бы я это сделал?В массиве нет такого индекса, чтобы использовать его.

[Редактировать] Если у меня есть событие нажатия кнопки, также генерируемое во время выполнения, каждая кнопка закроет свой соответствующий Canvas:1013 *

List<Button> btnList = new List<Button>();

// function to add Canvas with a Button
Button btn = new Button();
btn.Content = "Destroy";
btn.Click += destroy_Click;
btnList.Add(btn);
cv.Children.Add(btn);

// Destroy click event
private void destroy_Click(object sender, RoutedEventArgs e)
{
if (sender == ????)
{}
}

С чем мне сравнить моего отправителя?

1 Ответ

2 голосов
/ 04 апреля 2011

Как я пытался объяснить в вашем последнем вопросе (который вы, вероятно, просто должны были обновить), вам не нужен отдельный список, просто используйте WrapPanel непосредственно для доступа к его дочерним элементам - вы знаю, что вы только добавили Canvas элементов к вашему WrapPanel, чтобы вы могли соответственно разыграть:

TextBox textbox = (wp.Children[5] as Canvas).Children[0] as TextBox;
textbox.Text = "Hello";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...