0

我有这两种方法,我必须使用它们来修改 ListBox 中的选定项目,并在同一个 txtBox 中对其进行编辑后,我用于填充 ListBox 以将其取回并用旧的替换它。

private void txtBox_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            List.Items.Add(Label.Content);
            Label.Content = "";
            txtBox.Text = "";
        }
    }

    private void ButtonModify_Click(object sender, RoutedEventArgs e)
    {
        int index = List.SelectedIndex;
        object item = List.SelectedItem;

        txtBox.Text = (string)item;

        txtBox_KeyUp(????????);
    }

我的直觉说我必须调用我用来填充 ListBox 的 EventMethod,但是有一些参数我无法删除,因为我需要它们在 txtBody_KeyUp() 中。所以我的问题是我必须写什么作为工作的论据,还是有其他方法可以做到这一点?

4

1 回答 1

0

您可以使用以下代码。

文本框 PreviewKeyDown 事件

    private int _tmpIndex = -1;

    private void TextBox_OnPreviewKeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key != Key.Enter || _tmpIndex == -1) return;
        ListBox1.Items[_tmpIndex] = TextBox1.Text;
        TextBox1.Text = "";
        _tmpIndex = -1;
    }

列表框鼠标双击事件

    private void ListBox_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        if (ListBox1.SelectedIndex <= 0) return;
        TextBox1.Text = ListBox1.SelectedItem.ToString();
        _tmpIndex = ListBox1.SelectedIndex;
    }

玩得开心

于 2013-06-13T21:45:45.330 回答