【问题标题】:Negative Index from a List<UIControl>?List<UIControl> 中的负索引?
【发布时间】:2011-07-28 22:40:21
【问题描述】:

我有一个列表、一个用于添加按钮的单击事件,以及为每个创建的按钮创建一个显示消息的单击事件。

public partial class MainWindow : Window
{
    List<Button> btnList = new List<Button>();

    public MainWindow()
    {
       InitializeComponent();
    }

    private void createbtn1_Click(object sender, RoutedEventArgs e)
    {
       Button btn = new Button();

       // wp is a WrapPanel in the MainWindow
       wp.Children.Add(btn);

       btn.Content = "Hello";
       btn.Click += hello_btn_Click;
       btnList.Add(btn);
    }

    private void hello_btn_Click(object sender, RoutedEventArgs e)
    {
       Button b = sender as Button;
       var bIndex = btnList.IndexOf(b);
       MessageBox.Show(bIndex.ToString());  
    }
}

现在代码已编辑并可以正常运行。

【问题讨论】:

  • 您询问List&lt;UIElement&gt;,但您的代码显示List&lt;Button&gt;;现在,它不会重要,但你能澄清一下吗?因为问题中存在一些差异;我在回答中提到的另一个。从 sn-p 调试已经够难了,但如果 sn-p 本身通过虚假陈述来混淆问题,那就更难了
  • @Marc,我已经修改了我的问题。希望澄清问题。

标签: c# wpf arrays list indexing


【解决方案1】:

在我看来,您有 2 个列表(btnLinkbtnList),并且让他们感到困惑:

btnLink.Add(btn);
...
var bIndex = btnList.IndexOf(b);

【讨论】:

  • @KMC 是 您的代码 中的拼写错误吗?或者在这里的问题?如果在您的代码中,这就是显示此症状所需的全部内容。如果您将一个对象添加到列表 A,并在列表 B 中查找它,您将得到 -1,因为它不在列表 B 中。
猜你喜欢
  • 2021-03-20
  • 2010-12-09
  • 2014-01-21
  • 2016-09-28
  • 2013-02-17
  • 2020-02-03
  • 2014-06-19
相关资源
最近更新 更多