как манипулировать ItemsControl ItemTemplate - PullRequest
0 голосов
/ 30 августа 2010

Я пытаюсь что-то простое, но изо всех сил пытаюсь найти простое решение, просто не вижу этого, хе-хе.

У меня есть число: «150», которое можно разбить на любое количество сегментов, когда пользователь вводит количество сегментов в текстовое поле; элемент управления заполнен текстовыми полями, показывающими размеры сегмента. Это работает.

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

Чтобы показать, что я имею в виду, я включил ссылку на проект vs2010 здесь (49kb)

1 Ответ

0 голосов
/ 30 августа 2010

Я не уверен, есть ли у вас проблемы с редактированием существующего размера сегмента или из-за проблем с перерасчетом.

Но одним из способов может быть подписка на событие KeyDown в текстовом поле, а затем проверка на ключ возврата. затем вы можете пересчитать сегменты, выполнить итерацию коллекции и обновить каждый элемент новым сегментом.

private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Return)
    {
        TextBox textbox = sender as TextBox;
        int newSegments;
        if (int.TryParse(textbox.Text, out newSegments))
        {
            //recalculate the segments
            //iterate the collection
            //update the segments
        }
    }
} 
...