Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行时将网格作为列表框的一项添加,最终会导致未知错误/崩溃_C#_Windows Phone 7_Listbox_Grid - Fatal编程技术网

C# 在运行时将网格作为列表框的一项添加,最终会导致未知错误/崩溃

C# 在运行时将网格作为列表框的一项添加,最终会导致未知错误/崩溃,c#,windows-phone-7,listbox,grid,C#,Windows Phone 7,Listbox,Grid,在下面的代码中,我正在尝试 将文本块(txtDays)放置在网格(mygrid)(作为行)中 将网格放置在列表框(lsBox)中 最后将列表框放入另一个网格(ContentPanel) 程序正在崩溃,没有出现适当的错误,当我执行此代码时,仿真器停止。如果我将网格(在2.)放在stackPanel中,或者直接放在另一个网格(在3.)中,而不将其放在ListBox中,则代码可以工作,但不能与ListBox一起工作 如有任何意见,请提供帮助 多谢各位 private void PhoneApp

在下面的代码中,我正在尝试

  • 将文本块(txtDays)放置在网格(mygrid)(作为行)中
  • 将网格放置在列表框(lsBox)中
  • 最后将列表框放入另一个网格(ContentPanel)
  • 程序正在崩溃,没有出现适当的错误,当我执行此代码时,仿真器停止。如果我将网格(在2.)放在stackPanel中,或者直接放在另一个网格(在3.)中,而不将其放在ListBox中,则代码可以工作,但不能与ListBox一起工作

    如有任何意见,请提供帮助

    多谢各位

        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            string[] lstDays = new string[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
    
            //Creating a ListBox
            ListBox lstBox = new ListBox();
            //Grid definition
            Grid mygrid = new Grid();
            ColumnDefinition c1 = new ColumnDefinition(); //creating a column
            mygrid.ColumnDefinitions.Add(c1);
    
            int i = -1;
            foreach (string item in lstDays)
            {
                i += 1;
                TextBlock txtDays = new TextBlock(); //Creating a TextBlock
    
                RowDefinition r1 = new RowDefinition(); //Creating a row
                mygrid.RowDefinitions.Add(r1);
    
                txtDays.Text = item;
                txtDays.TextAlignment = TextAlignment.Left;
                if (item == "Thursday")
                {
                    txtDays.TextAlignment = TextAlignment.Right;
                    txtDays.Foreground = new SolidColorBrush(Colors.Green);
                }
    
                mygrid.Children.Add(txtDays); //Adding the TextBlock into the grid
                Grid.SetRow(txtDays,i);       //Placing the item in a particular row inside the grid          
                lstBox.Items.Add(mygrid);     //Placing grid inside a listBox (ERROR here)
    
            }
    
            RowDefinition rNewRow = new RowDefinition();
            ContentPanel.RowDefinitions.Add(rNewRow);
            ContentPanel.Children.Add(lstBox);
        }
    

    您试图在每次
    foreach
    迭代中将
    mygrid
    添加到
    lstBox
    。带
    lstBox.Items.Add(mygrid)在循环外部,因此只添加一次


    如果您想要多个网格,则可以将
    mygrid
    的定义放入循环中。

    您试图在每个
    foreach
    迭代中将
    mygrid
    添加到
    lstBox
    。带
    lstBox.Items.Add(mygrid)在循环外部,因此只添加一次


    如果需要多个网格,请将
    mygrid
    的定义放在循环中。

    修复错误后,将代码放入循环中。对于初学者来说,这是一段很好的代码

    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }
    
        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            string[] lstDays = new string[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
    
            //Creating a ListBox
            ListBox lstBox = new ListBox();
    
            foreach (string item in lstDays)
            {
                //Grid definition
                Grid mygrid = new Grid();
                mygrid.Width = 400;
                ColumnDefinition c1 = new ColumnDefinition(); //creating a column
                c1.Width = new GridLength(200);
                mygrid.ColumnDefinitions.Add(c1);
    
                RowDefinition r1 = new RowDefinition(); //Creating a row
                mygrid.RowDefinitions.Add(r1);
    
                TextBlock txtDays = new TextBlock(); //Creating a TextBlock
                txtDays.Text = item;
                txtDays.TextAlignment = TextAlignment.Left;
                if (item == "Thursday")
                {
                    txtDays.TextAlignment = TextAlignment.Right;
                    txtDays.Foreground = new SolidColorBrush(Colors.Green);
                }
    
                mygrid.Children.Add(txtDays); //Adding the TextBlock into the grid
                Grid.SetRow(txtDays,0);       //Placing the item in a particular row inside the grid          
    
                lstBox.Items.Add(mygrid);     //Placing grid inside a listBox    
            }
    
            RowDefinition rNewRow = new RowDefinition();
            ContentPanel.RowDefinitions.Add(rNewRow);
            ContentPanel.Children.Add(lstBox);
        }
    }
    

    修复错误后,将重新启动代码。对于初学者来说,这是一段很好的代码

    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }
    
        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            string[] lstDays = new string[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
    
            //Creating a ListBox
            ListBox lstBox = new ListBox();
    
            foreach (string item in lstDays)
            {
                //Grid definition
                Grid mygrid = new Grid();
                mygrid.Width = 400;
                ColumnDefinition c1 = new ColumnDefinition(); //creating a column
                c1.Width = new GridLength(200);
                mygrid.ColumnDefinitions.Add(c1);
    
                RowDefinition r1 = new RowDefinition(); //Creating a row
                mygrid.RowDefinitions.Add(r1);
    
                TextBlock txtDays = new TextBlock(); //Creating a TextBlock
                txtDays.Text = item;
                txtDays.TextAlignment = TextAlignment.Left;
                if (item == "Thursday")
                {
                    txtDays.TextAlignment = TextAlignment.Right;
                    txtDays.Foreground = new SolidColorBrush(Colors.Green);
                }
    
                mygrid.Children.Add(txtDays); //Adding the TextBlock into the grid
                Grid.SetRow(txtDays,0);       //Placing the item in a particular row inside the grid          
    
                lstBox.Items.Add(mygrid);     //Placing grid inside a listBox    
            }
    
            RowDefinition rNewRow = new RowDefinition();
            ContentPanel.RowDefinitions.Add(rNewRow);
            ContentPanel.Children.Add(lstBox);
        }
    }
    

    我感到羞愧:(!是的,就是这样!:)我认为把定义放在循环中是个好主意,这是我想要实现的。没关系,我们都会犯愚蠢的错误。我把它们捆成一捆我感到羞愧:(!是的,就是这样!:)我认为把定义放在循环中是个好主意,这是我想要实现的。没关系,我们都会犯愚蠢的错误。我把它们捆成一捆