代码之家  ›  专栏  ›  技术社区  ›  Nick Heiner

在Silverlight 4中以用户友好的方式输入列表?

  •  0
  • Nick Heiner  · 技术社区  · 14 年前

    一个想法:制作一个文本框。如果文本框失去焦点,并且内容是有效名称,请将其添加到列表框中。如果用户在列表框中选择一个条目并点击 ,将其删除。

    代码:

    :

        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);
            }
        }
    

    主页.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 回复  |  直到 14 年前
        1
  •  0
  •   Chris Taylor    14 年前

    这是一个成批输入,操作人员将坐在那里输入一个名单,从一些来源,如纸张名单或什么?

    如果是这样的话,我会想象数据输入应该尽可能流畅。这些日复一日做这类事情的操作人员通常都是闪电般的快速和准确。

    所以一个选择是一旦操作员点击 输入 按文本框上的键,内容被移动到列表中,文本框被清除并准备好下一个条目。这样操作员就不会离开键盘。只需输入名字,点击 输入

    如果操作员输入了错误的姓名,操作员可以按tab键导航到列表,该列表将立即选择输入的姓氏。操作员可以按 德尔 键删除条目或

    开箱即用,我不认为有任何特殊的控制,将处理这个键盘导航为您。你需要自己处理这个问题,当然在SL中这是 令人难以置信的痛苦。

        2
  •  0
  •   Aggelos Biboudis    14 年前

    首先,对前面提到的回车键执行相同的操作。

    Silverlight有一个很好的数据绑定机制,说到它,它是关于将控件(listbox的ItemSource)的依赖属性数据绑定到一个单独类(xaml文件的DataContext)上的clr属性。我在这一行中描述的是著名的表示模型模式的一部分,也就是微软所说的。MVVM公司。因此,由于您是Silverlight的新手,了解这些概念将使您的生活更轻松。