Удобный способ ввода списка в Silverlight 4? - PullRequest
0 голосов
/ 11 сентября 2010

У меня есть приложение, где пользователи будут вводить списки имен.(Существует некоторая коллекция допустимых имен.) Я не уверен, что наиболее удобный способ сделать это.

Одна идея: создать текстовое поле.Если текстовое поле теряет фокус и содержимое является допустимым именем, добавьте его в список.Если пользователь выбирает запись в списке и нажимает удалить , удалите ее.

Код:

MainPage.xaml.cs :

    private void WhoOwesInput_LostFocus(object sender, RoutedEventArgs e)
    {
        if (people.Contains(WhoOwesInput.Text))
        {
            WhoOwesListBox.Items.Add(WhoOwesInput.Text);
            WhoOwesInput.Text = String.Empty;
        }
    }

    private void WhoOwesListBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Delete || e.Key == Key.Back)
        {
            WhoOwesListBox.Items.Remove(WhoOwesListBox.SelectedItem);
        }
    }

MainPage.xaml :

<sdk:AutoCompleteBox Height="23" HorizontalAlignment="Left" Margin="337,205,0,0" Name="WhoOwesInput" VerticalAlignment="Top" Width="74" ValueMemberBinding="{Binding}" LostFocus="WhoOwesInput_LostFocus" />
<ListBox Height="100" HorizontalAlignment="Left" Margin="337,232,0,0" Name="WhoOwesListBox" VerticalAlignment="Top" Width="74" KeyDown="WhoOwesListBox_KeyDown" />

Я новичок в SL, поэтому боюсь, что я могу упустить некоторые элементы управления или предпочестьспособ делать вещи.Любой совет?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2010

Прежде всего, сделайте то же самое для клавиши Enter, как указано выше. Однако, если вы получаете гораздо больше информации, которую вы хотите, чтобы ваши пользователи вводили, вам следует подумать об улучшении дизайна.

Silverlight имеет отличный механизм привязки данных, говоря о том, что речь идет о свойствах зависимости привязки данных для элементов управления (ItemSource из списка) для определения свойств отдельного класса, который является DataContext вашего файла xaml. То, что я описал в этом одном вкладыше, является частью известного шаблона представления - модели или, как его называет Microsoft. MVVM. Итак, когда вы новичок в Silverlight, узнайте об этих концепциях, которые облегчат вашу жизнь.

Пока вы можете делать то, что сказал Крис выше.

0 голосов
/ 11 сентября 2010

Это для групповой записи, где оператор будет сидеть и вводить список имен из какого-либо источника, например, из бумажного списка или чего-то еще?

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

Таким образом, одним из вариантов будет то, что как только оператор нажимает клавишу Enter в текстовом поле, содержимое перемещается в список, текстовое поле очищается и готово для следующей записи.Таким образом, оператор никогда не покидает клавиатуру.Просто введите имя, нажмите Введите , введите следующее имя и т. Д.

Если оператор неправильно набрал имя, оператор может нажать клавишу tab, чтобы перейти к списку, который сразу выберет введенную фамилию.Оператор может либо нажать Del , чтобы удалить запись, либо Ins , чтобы отредактировать, изменить, удалит имя из списка, вернет его обратно в текстовое поле и установит фокус на текстовое поле так, чтобыоператор может редактировать имя.

Из коробки Я не думаю, что есть какие-либо специальные элементы управления, которые будут обрабатывать эту навигацию клавиатуры для вас.Вы должны будете справиться с итерацией самостоятельно, конечно, в SL это не невероятно болезненно.

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